summaryrefslogtreecommitdiff
path: root/2026/framing
diff options
context:
space:
mode:
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)bin3536755 -> 3551599 bytes
-rw-r--r--2026/framing/dist/index.html13
-rw-r--r--2026/framing/index.html7
-rw-r--r--2026/framing/src/assets/textures/mrworld.pngbin10312 -> 23980 bytes
-rw-r--r--2026/framing/src/game.rs27
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
index 0e28a03..35e45e1 100644
--- a/2026/framing/dist/game_lib-62e6bf35091a4376_bg.wasm
+++ b/2026/framing/dist/game_lib-28e9fb71c2b1e759_bg.wasm
Binary files differ
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
index 831cacb..f9b2c93 100644
--- a/2026/framing/src/assets/textures/mrworld.png
+++ b/2026/framing/src/assets/textures/mrworld.png
Binary files differ
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");
+ }
});
}