summaryrefslogtreecommitdiff
path: root/2026/framing/src/game.rs
diff options
context:
space:
mode:
authorLLLL Colonq <llll@colonq>2026-06-18 16:15:46 -0400
committerLLLL Colonq <llll@colonq>2026-06-18 16:15:46 -0400
commitc9fc2ca532c5219a087924ece1e38be19c25f006 (patch)
tree7c9d8e32617fab6e6179fe70893a3027714ea4e7 /2026/framing/src/game.rs
parent068f3b9dc0522b03af534479cfa300a720ae86fa (diff)
Update
Diffstat (limited to '2026/framing/src/game.rs')
-rw-r--r--2026/framing/src/game.rs27
1 files changed, 20 insertions, 7 deletions
diff --git a/2026/framing/src/game.rs b/2026/framing/src/game.rs
index f27b6c1..43f39fd 100644
--- a/2026/framing/src/game.rs
+++ b/2026/framing/src/game.rs
@@ -184,20 +184,22 @@ impl teleia::state::Game for Game {
self.renderer.begin_frame(ctx, st, Vec4::ZERO);
self.renderer.bind_uber_2d(ctx, st, UberFlags::TEXTURE_COLOR | UberFlags::TEXTURE_FLIP | UberFlags::SPRITE);
self.renderer.bind_texture(ctx, st, assets::Texture::Mrworld);
- self.renderer.set_texture_offset(ctx, st, 8, 1, (t % 2) as i32, 0);
+ self.renderer.set_texture_offset(ctx, st, 8, 1, (t / 20 % 2) as i32, 0);
self.renderer.set_position_2d(ctx, st, Vec2::ZERO, st.render_dims);
self.renderer.set_vec2(ctx, st, "texture_flip", glam::Vec2::new(0.0, 1.0));
self.renderer.render_square(ctx, st);
self.lives.render(ctx, st, &mut self.renderer)?;
},
Mode::InGame => {
+ let prog = t / 10;
self.renderer.begin_frame(ctx, st, Vec4::ZERO);
- if t < 18 {
+ if prog < 6 {
self.renderer.bind_uber_2d(ctx, st, UberFlags::TEXTURE_COLOR | UberFlags::TEXTURE_FLIP | UberFlags::SPRITE | UberFlags::OPACITY);
self.renderer.bind_texture(ctx, st, assets::Texture::Mrworld);
- self.renderer.set_texture_offset(ctx, st, 8, 1, 2 + (t % 6) as i32, 0);
+ self.renderer.set_texture_offset(ctx, st, 8, 1, 2 + prog as i32, 0);
self.renderer.set_position_2d(ctx, st, Vec2::ZERO, st.render_dims);
self.renderer.set_vec2(ctx, st, "texture_flip", glam::Vec2::new(0.0, 1.0));
+ self.renderer.set_f32(ctx, st, "opacity", (5.0 - prog as f32) / 5.0);
self.renderer.render_square(ctx, st);
}
self.lives.render(ctx, st, &mut self.renderer)?;
@@ -211,10 +213,21 @@ impl teleia::state::Game for Game {
}
#[wasm_bindgen]
-pub fn lose_life() {
+pub fn start_game() {
contextualize(|ctx, st, g: &mut Game| {
- log::info!("lose a life");
- g.lives.lose_life(ctx, st);
- st.audio.play_sfx("footsteps");
+ g.mode = Mode::InGame;
+ g.mode_started = st.tick;
+ });
+}
+
+#[wasm_bindgen]
+pub fn end_game(win: bool) {
+ contextualize(|ctx, st, g: &mut Game| {
+ g.mode = Mode::BetweenGames;
+ g.mode_started = st.tick;
+ if !win {
+ g.lives.lose_life(ctx, st);
+ st.audio.play_sfx("footsteps");
+ }
});
}