1use figs::prelude::*;
2
3fn main() -> FigResult<()> {
4 let mut canvas = Canvas::new("simple example", (320, 320), 60)?;
6 let mut input = InputManager::new();
7
8 let mut assets = AssetLoader::from_tar("examples/assets.tgz");
10 let mut bop = Entity::new((200.0, 200.0), vec![assets.load_png("bop.png")?], (8, 8), 20);
15 let mut blob = Entity::new((100.0, 100.0), assets.load_png_dir("blob")?, (8, 8), 20);
16
17 input.wasd();
19 input.arrows();
20
21 input.add(Key::Escape);
23
24 while canvas.is_open() {
26 for key in &input.keys {
28 if canvas.key_down(*key) {
29 match key {
30 Key::W | Key::Up => blob.mov(0.0, -1.0),
31 Key::A | Key::Left => blob.mov(-1.0, 0.0),
32 Key::S | Key::Down => blob.mov(0.0, 1.0),
33 Key::D | Key::Right => blob.mov(1.0, 0.0),
34 Key::Escape => return Ok(()),
35 _ => (),
36 }
37 }
38 }
39
40 bop.update();
42 blob.update();
43
44 canvas.clear();
46 canvas.draw(&bop);
47 canvas.draw(&blob);
48 canvas.update()?;
49 }
50
51 Ok(())
52}