diff options
| author | LLLL Colonq <llll@colonq> | 2026-06-18 16:15:46 -0400 |
|---|---|---|
| committer | LLLL Colonq <llll@colonq> | 2026-06-18 16:15:46 -0400 |
| commit | c9fc2ca532c5219a087924ece1e38be19c25f006 (patch) | |
| tree | 7c9d8e32617fab6e6179fe70893a3027714ea4e7 /2026/framing | |
| parent | 068f3b9dc0522b03af534479cfa300a720ae86fa (diff) | |
Update
Diffstat (limited to '2026/framing')
| -rw-r--r-- | 2026/framing/dist/game_lib-28e9fb71c2b1e759.js (renamed from 2026/framing/dist/game_lib-62e6bf35091a4376.js) | 25 | ||||
| -rw-r--r-- | 2026/framing/dist/game_lib-28e9fb71c2b1e759_bg.wasm (renamed from 2026/framing/dist/game_lib-62e6bf35091a4376_bg.wasm) | bin | 3536755 -> 3551599 bytes | |||
| -rw-r--r-- | 2026/framing/dist/index.html | 13 | ||||
| -rw-r--r-- | 2026/framing/index.html | 7 | ||||
| -rw-r--r-- | 2026/framing/src/assets/textures/mrworld.png | bin | 10312 -> 23980 bytes | |||
| -rw-r--r-- | 2026/framing/src/game.rs | 27 |
6 files changed, 49 insertions, 23 deletions
diff --git a/2026/framing/dist/game_lib-62e6bf35091a4376.js b/2026/framing/dist/game_lib-28e9fb71c2b1e759.js index c68088f..56a4b8d 100644 --- a/2026/framing/dist/game_lib-62e6bf35091a4376.js +++ b/2026/framing/dist/game_lib-28e9fb71c2b1e759.js @@ -215,8 +215,15 @@ function debugString(val) { return className; } -export function lose_life() { - wasm.lose_life(); +export function start_game() { + wasm.start_game(); +} + +/** + * @param {boolean} win + */ +export function end_game(win) { + wasm.end_game(win); } export function main_js() { @@ -1450,31 +1457,31 @@ function __wbg_get_imports() { const ret = false; return ret; }; - imports.wbg.__wbindgen_closure_wrapper3065 = function(arg0, arg1, arg2) { + imports.wbg.__wbindgen_closure_wrapper3071 = function(arg0, arg1, arg2) { const ret = makeMutClosure(arg0, arg1, 523, __wbg_adapter_43); return ret; }; - imports.wbg.__wbindgen_closure_wrapper3066 = function(arg0, arg1, arg2) { + imports.wbg.__wbindgen_closure_wrapper3072 = function(arg0, arg1, arg2) { const ret = makeMutClosure(arg0, arg1, 523, __wbg_adapter_43); return ret; }; - imports.wbg.__wbindgen_closure_wrapper3067 = function(arg0, arg1, arg2) { + imports.wbg.__wbindgen_closure_wrapper3073 = function(arg0, arg1, arg2) { const ret = makeMutClosure(arg0, arg1, 523, __wbg_adapter_43); return ret; }; - imports.wbg.__wbindgen_closure_wrapper3068 = function(arg0, arg1, arg2) { + imports.wbg.__wbindgen_closure_wrapper3074 = function(arg0, arg1, arg2) { const ret = makeMutClosure(arg0, arg1, 523, __wbg_adapter_43); return ret; }; - imports.wbg.__wbindgen_closure_wrapper3069 = function(arg0, arg1, arg2) { + imports.wbg.__wbindgen_closure_wrapper3075 = function(arg0, arg1, arg2) { const ret = makeMutClosure(arg0, arg1, 523, __wbg_adapter_43); return ret; }; - imports.wbg.__wbindgen_closure_wrapper3070 = function(arg0, arg1, arg2) { + imports.wbg.__wbindgen_closure_wrapper3076 = function(arg0, arg1, arg2) { const ret = makeMutClosure(arg0, arg1, 523, __wbg_adapter_54); return ret; }; - imports.wbg.__wbindgen_closure_wrapper3296 = function(arg0, arg1, arg2) { + imports.wbg.__wbindgen_closure_wrapper3302 = function(arg0, arg1, arg2) { const ret = makeMutClosure(arg0, arg1, 598, __wbg_adapter_57); return ret; }; diff --git a/2026/framing/dist/game_lib-62e6bf35091a4376_bg.wasm b/2026/framing/dist/game_lib-28e9fb71c2b1e759_bg.wasm Binary files differindex 0e28a03..35e45e1 100644 --- a/2026/framing/dist/game_lib-62e6bf35091a4376_bg.wasm +++ b/2026/framing/dist/game_lib-28e9fb71c2b1e759_bg.wasm diff --git a/2026/framing/dist/index.html b/2026/framing/dist/index.html index 6d9a12d..9f9e64e 100644 --- a/2026/framing/dist/index.html +++ b/2026/framing/dist/index.html @@ -6,8 +6,8 @@ <meta charset="UTF-8"> <script type="module"> -import init, * as bindings from '/framing/dist/game_lib-62e6bf35091a4376.js'; -const wasm = await init({ module_or_path: '/framing/dist/game_lib-62e6bf35091a4376_bg.wasm' }); +import init, * as bindings from '/framing/dist/game_lib-28e9fb71c2b1e759.js'; +const wasm = await init({ module_or_path: '/framing/dist/game_lib-28e9fb71c2b1e759_bg.wasm' }); window.wasmBindings = bindings; @@ -23,7 +23,7 @@ dispatchEvent(new CustomEvent("TrunkApplicationStarted", {detail: {wasm}})); <link rel="icon" href="data:;base64,iVBORw0KGgo="> <link rel="stylesheet" href="/framing/dist/index-1e3cd2ca0ba4d1ec.css" integrity="sha384-1q3UDTmLdOyf9/QxW+Imap//HWhTWNfvn7j2iwuUap3HSD6IOGG7pDS9VJMk7nKv"/> <title>TODO TITLE</title> - <link rel="modulepreload" href="/framing/dist/game_lib-62e6bf35091a4376.js" crossorigin="anonymous" integrity="sha384-S1KY7Qk066hXL+J+Cz93n5XryauMt7DLP0Q3rQ8A3KkLu+wkFUlVXUp6FK1ZRE10"><link rel="modulepreload" href="/framing/dist/snippets/teleia-727bf4351691f1c8/src/helpers.js" crossorigin="anonymous" integrity="sha384-HhtEY2WfGmhyPUSRWKZvqsRxYsdT/DLEdFUqWyDZt6G6lrNHmE1zMlw4BJ3RycRd"><link rel="preload" href="/framing/dist/game_lib-62e6bf35091a4376_bg.wasm" crossorigin="anonymous" integrity="sha384-u9lGl9wvDd+Iyeq4ubFCWIsIAw+N6TZgqfYkGlHNazsvIe43vmp0qAPvfrsvgJsy" as="fetch" type="application/wasm"></head> + <link rel="modulepreload" href="/framing/dist/game_lib-28e9fb71c2b1e759.js" crossorigin="anonymous" integrity="sha384-xa3oynUWjM2KyWPGXEx1cqgUHqbEUzH9HNTkgOzWX2AFcHicMUeteWK8fHpDzGqH"><link rel="modulepreload" href="/framing/dist/snippets/teleia-727bf4351691f1c8/src/helpers.js" crossorigin="anonymous" integrity="sha384-HhtEY2WfGmhyPUSRWKZvqsRxYsdT/DLEdFUqWyDZt6G6lrNHmE1zMlw4BJ3RycRd"><link rel="preload" href="/framing/dist/game_lib-28e9fb71c2b1e759_bg.wasm" crossorigin="anonymous" integrity="sha384-BGNmZdRCu87E5ofQwyzgvlr/1L4/7UauotKhsQdBWl1f9/DxnZEqucD1CqR+YMft" as="fetch" type="application/wasm"></head> <body> <script type="module"> window.addEventListener("TrunkApplicationStarted", async (event) => { @@ -32,8 +32,11 @@ dispatchEvent(new CustomEvent("TrunkApplicationStarted", {detail: {wasm}})); }); window.addEventListener("message", ev => { switch (ev.data.op) { - case "loselife": - window.wasmBindings.lose_life(); + case "startgame": + window.wasmBindings.start_game(); + break; + case "endgame": + window.wasmBindings.end_game(ev.data.win); break; default: console.log(`unknown event: ${ev}`); break; } diff --git a/2026/framing/index.html b/2026/framing/index.html index a38f0f5..c4bb579 100644 --- a/2026/framing/index.html +++ b/2026/framing/index.html @@ -21,8 +21,11 @@ }); window.addEventListener("message", ev => { switch (ev.data.op) { - case "loselife": - window.wasmBindings.lose_life(); + case "startgame": + window.wasmBindings.start_game(); + break; + case "endgame": + window.wasmBindings.end_game(ev.data.win); break; default: console.log(`unknown event: ${ev}`); break; } diff --git a/2026/framing/src/assets/textures/mrworld.png b/2026/framing/src/assets/textures/mrworld.png Binary files differindex 831cacb..f9b2c93 100644 --- a/2026/framing/src/assets/textures/mrworld.png +++ b/2026/framing/src/assets/textures/mrworld.png 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"); + } }); } |
