mirror of
https://github.com/Xevion/Pac-Man.git
synced 2025-12-08 22:07:57 -06:00
Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0f1e1d4d42 | ||
|
|
9e029966dc |
5
Justfile
5
Justfile
@@ -40,5 +40,6 @@ samply:
|
||||
samply record ./target/profile/pacman{{ binary_extension }}
|
||||
|
||||
# Build the project for Emscripten
|
||||
web:
|
||||
bun run web.build.ts; caddy file-server --root dist
|
||||
web *args:
|
||||
bun run web.build.ts {{args}};
|
||||
caddy file-server --root dist
|
||||
|
||||
@@ -49,6 +49,13 @@ pub const CANVAS_SIZE: UVec2 = UVec2::new(
|
||||
(BOARD_CELL_SIZE.y + BOARD_CELL_OFFSET.y) * CELL_SIZE,
|
||||
);
|
||||
|
||||
pub const LARGE_SCALE: f32 = 2.6;
|
||||
|
||||
pub const LARGE_CANVAS_SIZE: UVec2 = UVec2::new(
|
||||
(((BOARD_CELL_SIZE.x + BOARD_CELL_OFFSET.x) * CELL_SIZE) as f32 * LARGE_SCALE) as u32,
|
||||
(((BOARD_CELL_SIZE.y + BOARD_CELL_OFFSET.y) * CELL_SIZE) as f32 * LARGE_SCALE) as u32,
|
||||
);
|
||||
|
||||
/// Collider size constants for different entity types
|
||||
pub mod collider {
|
||||
use super::CELL_SIZE;
|
||||
|
||||
@@ -157,9 +157,9 @@ impl Game {
|
||||
map_texture.set_scale_mode(ScaleMode::Nearest);
|
||||
|
||||
// Create debug texture at output resolution for crisp debug rendering
|
||||
let output_size = canvas.output_size().unwrap();
|
||||
let output_size = constants::LARGE_CANVAS_SIZE;
|
||||
let mut debug_texture = texture_creator
|
||||
.create_texture_target(Some(sdl2::pixels::PixelFormatEnum::ARGB8888), output_size.0, output_size.1)
|
||||
.create_texture_target(Some(sdl2::pixels::PixelFormatEnum::ARGB8888), output_size.x, output_size.y)
|
||||
.map_err(|e| GameError::Sdl(e.to_string()))?;
|
||||
|
||||
// Debug texture is copied over the backbuffer, it requires transparency abilities
|
||||
|
||||
@@ -142,8 +142,6 @@ pub fn ghost_collision_system(
|
||||
events.write(AudioEvent::PlayEat);
|
||||
} else {
|
||||
// Pac-Man dies (this would need a death system)
|
||||
// For now, just log it
|
||||
tracing::warn!("Pac-Man collided with ghost while not frightened!");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//! Debug rendering system
|
||||
use std::cmp::Ordering;
|
||||
|
||||
use crate::constants::{BOARD_PIXEL_OFFSET, CANVAS_SIZE};
|
||||
use crate::constants::{self, BOARD_PIXEL_OFFSET};
|
||||
use crate::map::builder::Map;
|
||||
use crate::systems::{Collider, CursorPosition, NodeId, Position, SystemTimings};
|
||||
use crate::texture::ttf::{TtfAtlas, TtfRenderer};
|
||||
@@ -215,9 +215,7 @@ pub fn debug_render_system(
|
||||
if !debug_state.enabled {
|
||||
return;
|
||||
}
|
||||
let output = UVec2::from(canvas.output_size().unwrap()).as_vec2();
|
||||
let logical = CANVAS_SIZE.as_vec2();
|
||||
let scale = (output / logical).min_element();
|
||||
let scale = constants::LARGE_SCALE as f32;
|
||||
|
||||
// Create debug text renderer
|
||||
let text_renderer = TtfRenderer::new(1.0);
|
||||
|
||||
@@ -50,7 +50,7 @@ fn test_atlas_mapper_multiple_frames() {
|
||||
assert!(mapper.frames.contains_key("tile1"));
|
||||
assert!(mapper.frames.contains_key("tile2"));
|
||||
assert!(!mapper.frames.contains_key("tile3"));
|
||||
assert!(mapper.frames.get("nonexistent").is_none());
|
||||
assert!(!mapper.frames.contains_key("nonexistent"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
||||
15
web.build.ts
15
web.build.ts
@@ -501,7 +501,6 @@ async function activateEmsdk(
|
||||
|
||||
return { vars };
|
||||
}
|
||||
|
||||
async function main() {
|
||||
// Print the OS detected
|
||||
logger.debug(
|
||||
@@ -515,7 +514,19 @@ async function main() {
|
||||
.exhaustive()
|
||||
);
|
||||
|
||||
const release = process.env.RELEASE !== "0";
|
||||
// Parse command line args for build mode
|
||||
const args = process.argv.slice(2);
|
||||
let release = true; // Default to release mode
|
||||
|
||||
for (let i = 0; i < args.length; i++) {
|
||||
const arg = args[i];
|
||||
if (arg === "-d" || arg === "--debug") {
|
||||
release = false;
|
||||
} else if (arg === "-r" || arg === "--release") {
|
||||
release = true;
|
||||
}
|
||||
}
|
||||
|
||||
const emsdkDir = resolve("./emsdk");
|
||||
|
||||
// Activate the Emscripten SDK (returns null if already activated)
|
||||
|
||||
Reference in New Issue
Block a user