Further simplify, fix crate module

This commit is contained in:
2024-04-14 01:56:30 -05:00
parent 10d9db6e95
commit ea37aa92d7

View File

@@ -13,6 +13,9 @@ static WHITE: Color = Color::RGB(255, 255, 255);
// export EMCC_CFLAGS="-s USE_SDL=2" // export EMCC_CFLAGS="-s USE_SDL=2"
// cargo build --target asmjs-unknown-emscripten && open index.html // cargo build --target asmjs-unknown-emscripten && open index.html
#[cfg(target_family = "wasm")]
pub mod emscripten;
fn main() { fn main() {
let ctx = sdl2::init().unwrap(); let ctx = sdl2::init().unwrap();
let video_ctx = ctx.video().unwrap(); let video_ctx = ctx.video().unwrap();
@@ -38,10 +41,9 @@ fn main() {
let rect = Rc::new(RefCell::new(rect)); let rect = Rc::new(RefCell::new(rect));
let canvas = Rc::new(RefCell::new(canvas)); let canvas = Rc::new(RefCell::new(canvas));
let mut events = ctx.borrow_mut().event_pump().unwrap(); let main_loop = move || {
let mut main_loop = move || { for event in ctx.borrow_mut().event_pump().unwrap().poll_iter() {
for event in events.poll_iter() {
match event { match event {
Event::Quit { .. } Event::Quit { .. }
| Event::KeyDown { | Event::KeyDown {
@@ -51,43 +53,37 @@ fn main() {
process::exit(1); process::exit(1);
} }
Event::KeyDown { Event::KeyDown {
keycode: Some(Keycode::Left), keycode: Some(key),
.. ..
} => { } => {
rect.borrow_mut().x -= 10; match key {
} Keycode::Left => {
Event::KeyDown { rect.borrow_mut().x -= 10;
keycode: Some(Keycode::Right), }
.. Keycode::Right => {
} => { rect.borrow_mut().x += 10;
rect.borrow_mut().x += 10; }
} Keycode::Up => {
Event::KeyDown { rect.borrow_mut().y -= 10;
keycode: Some(Keycode::Up), }
.. Keycode::Down => {
} => { rect.borrow_mut().y += 10;
rect.borrow_mut().y -= 10; }
} _ => {}
Event::KeyDown { }
keycode: Some(Keycode::Down),
..
} => {
rect.borrow_mut().y += 10;
} }
_ => {} _ => {}
} }
} }
let _ = canvas.borrow_mut().set_draw_color(BLACK); let mut canvas = canvas.borrow_mut();
let _ = canvas.borrow_mut().clear(); canvas.set_draw_color(BLACK);
let _ = canvas.borrow_mut().set_draw_color(WHITE); canvas.clear();
let _ = canvas.borrow_mut().fill_rect(rect.borrow().clone()); canvas.set_draw_color(WHITE);
let _ = canvas.borrow_mut().present(); canvas.fill_rect(rect.borrow().clone());
canvas.present();
}; };
#[cfg(target_family = "wasm")]
use pacman::emscripten;
#[cfg(target_family = "wasm")] #[cfg(target_family = "wasm")]
emscripten::set_main_loop_callback(main_loop); emscripten::set_main_loop_callback(main_loop);