45 lines
1.1 KiB
Rust
45 lines
1.1 KiB
Rust
|
use skunk2d::*;
|
||
|
|
||
|
const WIDTH: i32 = 1280;
|
||
|
const HEIGHT: i32 = 720;
|
||
|
|
||
|
struct World {
|
||
|
img: Image,
|
||
|
pos: Vec2<i32>
|
||
|
}
|
||
|
|
||
|
fn main() {
|
||
|
run::<World>(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("examples/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);
|
||
|
}
|
||
|
}
|