use skunk2d::*; const WIDTH: i32 = 1280 / 2; const HEIGHT: i32 = 720 / 2; struct World { img: Image, pos: Vec2, } fn main() { run::(WIDTH, HEIGHT); } impl Game for World { fn new(window_state: &mut WindowState) -> Self { window_state.set_palette(0, 0xc0, 0xf0, 0xd0); window_state.scramble_palette(); Self { img: Image::load_data(include_bytes!("assets/test.gif")), pos: Vec2::zero(), } } fn update(&mut self, window_state: &mut WindowState) { self.pos = window_state.mouse_pos(); } fn on_event(&mut self, window_state: &mut WindowState, event: Event) { match event { Event::MouseClick(MouseButton::Left, _) => { window_state.scramble_palette(); } _ => {} } } fn draw(&self, target: &mut Image) { target.clear(); target.draw_image(Vec2 { x: 200, y: 100 }, &self.img); target.draw_image(self.pos, &self.img); target.draw_line( Vec2 { x: WIDTH / 2, y: HEIGHT / 2, }, self.pos, 10, ); } }