summaryrefslogtreecommitdiff
path: root/2026/framing/src
diff options
context:
space:
mode:
authorLLLL Colonq <llll@colonq>2026-08-03 19:36:31 -0400
committerLLLL Colonq <llll@colonq>2026-08-03 19:36:31 -0400
commita75221ab93f59d688f90cd83f0284ff98951fcfa (patch)
tree215c9480f5b1bfdf63f9a0141b06a7cbefaab2e8 /2026/framing/src
parent9127154100230e8d60ab5139fb1bc626b24068ee (diff)
Update
Diffstat (limited to '2026/framing/src')
-rw-r--r--2026/framing/src/assets/fonts/font1.png (renamed from 2026/framing/src/assets/fonts/font0.png)bin8247 -> 8247 bytes
-rw-r--r--2026/framing/src/assets/fonts/font2.pngbin0 -> 8060 bytes
-rw-r--r--2026/framing/src/game.rs22
3 files changed, 19 insertions, 3 deletions
diff --git a/2026/framing/src/assets/fonts/font0.png b/2026/framing/src/assets/fonts/font1.png
index 048ef6c..048ef6c 100644
--- a/2026/framing/src/assets/fonts/font0.png
+++ b/2026/framing/src/assets/fonts/font1.png
Binary files differ
diff --git a/2026/framing/src/assets/fonts/font2.png b/2026/framing/src/assets/fonts/font2.png
new file mode 100644
index 0000000..1a3ddfe
--- /dev/null
+++ b/2026/framing/src/assets/fonts/font2.png
Binary files differ
diff --git a/2026/framing/src/game.rs b/2026/framing/src/game.rs
index 30c778e..fa2efff 100644
--- a/2026/framing/src/game.rs
+++ b/2026/framing/src/game.rs
@@ -161,7 +161,8 @@ pub struct Game {
mode: Mode,
mode_started: Tick,
renderer: renderer::Renderer<assets::Assets>,
- font0: font::Bitmap,
+ font1: font::Bitmap,
+ font2: font::Bitmap,
lives: Lives,
verb: Option<String>,
}
@@ -172,11 +173,18 @@ impl Game {
mode: Mode::Titlescreen,
mode_started: 0,
renderer: renderer::Renderer::new(ctx, st, assets::Assets::new),
- font0: font::Bitmap::from_image(ctx, 32, 48, 512, 288, include_bytes!("assets/fonts/font0.png")),
+ font1: font::Bitmap::from_image(ctx, 32, 48, 512, 288, include_bytes!("assets/fonts/font1.png")),
+ font2: font::Bitmap::from_image(ctx, 32, 48, 512, 288, include_bytes!("assets/fonts/font2.png")),
lives: Lives::new(),
verb: None,
}
}
+ pub fn reset(&mut self) {
+ self.mode = Mode::Titlescreen;
+ self.mode_started = 0;
+ self.lives = Lives::new();
+ self.verb = None;
+ }
pub fn switch(&mut self, _ctx: &context::Context, st: &mut state::State, m: Mode) {
self.mode = m;
self.mode_started = st.tick;
@@ -205,12 +213,13 @@ impl Game {
};
self.renderer.render_square(ctx, st);
if let Some(v) = &self.verb && let Some(t) = fadeout && t > 5 && t < 70 {
+ let tick = st.tick;
self.renderer.text_screen(ctx, st,
glam::Vec2::new(st.render_dims.x / 2.0, st.render_dims.y / 2.0),
v
)
.centered()
- .font(&self.font0)
+ .font(if (tick / 16).is_multiple_of(2) { &self.font1 } else { &self.font2 })
.color(glam::Vec4::new(0.39, 0.61, 1.0, opacity))
.render();
}
@@ -339,3 +348,10 @@ pub fn end_game(win: bool) {
js_update_lifetotal(g.lives.lives_remaining());
});
}
+
+#[wasm_bindgen]
+pub fn reset() {
+ contextualize(|_ctx, _st, g: &mut Game| {
+ g.reset();
+ })
+}