mirror of
https://github.com/Xevion/rust-sdl2-emscripten.git
synced 2025-12-14 14:12:59 -06:00
Further simplify, fix crate module
This commit is contained in:
44
src/main.rs
44
src/main.rs
@@ -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),
|
||||||
..
|
..
|
||||||
} => {
|
} => {
|
||||||
|
match key {
|
||||||
|
Keycode::Left => {
|
||||||
rect.borrow_mut().x -= 10;
|
rect.borrow_mut().x -= 10;
|
||||||
}
|
}
|
||||||
Event::KeyDown {
|
Keycode::Right => {
|
||||||
keycode: Some(Keycode::Right),
|
|
||||||
..
|
|
||||||
} => {
|
|
||||||
rect.borrow_mut().x += 10;
|
rect.borrow_mut().x += 10;
|
||||||
}
|
}
|
||||||
Event::KeyDown {
|
Keycode::Up => {
|
||||||
keycode: Some(Keycode::Up),
|
|
||||||
..
|
|
||||||
} => {
|
|
||||||
rect.borrow_mut().y -= 10;
|
rect.borrow_mut().y -= 10;
|
||||||
}
|
}
|
||||||
Event::KeyDown {
|
Keycode::Down => {
|
||||||
keycode: Some(Keycode::Down),
|
|
||||||
..
|
|
||||||
} => {
|
|
||||||
rect.borrow_mut().y += 10;
|
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);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user