Add car sprites
This commit is contained in:
parent
1febaba023
commit
8b37eeaddf
3 changed files with 100 additions and 0 deletions
|
@ -1,3 +1,7 @@
|
|||
static mut car_state: u8 = 0;
|
||||
static mut car_state_frames: u8 = 0;
|
||||
const CAR_FRAMES: u8 = 10;
|
||||
|
||||
pub fn fill(color: u8) {
|
||||
if color > 3 {
|
||||
crate::trace("ERROR: Invalid value passed to helper \"fill\"");
|
||||
|
@ -22,3 +26,18 @@ pub fn draw_mouse() -> Option<(i16, i16)> {
|
|||
None
|
||||
}
|
||||
}
|
||||
|
||||
pub fn toggle_car_state() -> bool {
|
||||
unsafe {
|
||||
car_state_frames += 1;
|
||||
if car_state_frames >= CAR_FRAMES {
|
||||
car_state_frames = 0;
|
||||
if car_state == 0 {
|
||||
car_state = 1;
|
||||
} else {
|
||||
car_state = 0;
|
||||
}
|
||||
}
|
||||
car_state != 0
|
||||
}
|
||||
}
|
||||
|
|
21
src/lib.rs
21
src/lib.rs
|
@ -4,6 +4,7 @@ mod wasm4;
|
|||
use wasm4::*;
|
||||
|
||||
mod helpers;
|
||||
mod sprites;
|
||||
|
||||
#[rustfmt::skip]
|
||||
const SMILEY: [u8; 8] = [
|
||||
|
@ -32,5 +33,25 @@ fn update() {
|
|||
blit(&SMILEY, 76, 76, 8, 8, BLIT_1BPP);
|
||||
text("Press X to blink", 16, 90);
|
||||
|
||||
unsafe { *DRAW_COLORS = 0x312 }
|
||||
if helpers::toggle_car_state() {
|
||||
blit(
|
||||
&sprites::CAR0,
|
||||
50,
|
||||
40,
|
||||
sprites::CAR0_WIDTH,
|
||||
sprites::CAR0_HEIGHT,
|
||||
sprites::CAR0_FLAGS,
|
||||
);
|
||||
} else {
|
||||
blit(
|
||||
&sprites::CAR1,
|
||||
50,
|
||||
40,
|
||||
sprites::CAR1_WIDTH,
|
||||
sprites::CAR1_HEIGHT,
|
||||
sprites::CAR1_FLAGS,
|
||||
);
|
||||
}
|
||||
if let Some((x, y)) = helpers::draw_mouse() {}
|
||||
}
|
||||
|
|
60
src/sprites.rs
Normal file
60
src/sprites.rs
Normal file
|
@ -0,0 +1,60 @@
|
|||
// car0
|
||||
pub const CAR0_WIDTH: u32 = 48;
|
||||
pub const CAR0_HEIGHT: u32 = 32;
|
||||
pub const CAR0_FLAGS: u32 = 1; // BLIT_2BPP
|
||||
pub const CAR0: [u8; 384] = [
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x3f, 0xff, 0xff, 0xfc, 0xa8, 0x0a, 0xaa, 0xaa, 0x00, 0x00, 0xaa, 0xaa, 0x1f, 0xff, 0xff,
|
||||
0xf0, 0x00, 0x0a, 0xaa, 0xaa, 0x80, 0x02, 0xaa, 0xaa, 0x1f, 0xff, 0xff, 0xf2, 0xa8, 0x0a, 0xaa,
|
||||
0xaa, 0x80, 0x02, 0xaa, 0xaa, 0x17, 0xff, 0xff, 0xc0, 0x00, 0x0a, 0xaa, 0xaa, 0xa0, 0x0a, 0xaa,
|
||||
0xaa, 0x15, 0xff, 0xff, 0xca, 0xa8, 0x0a, 0xaa, 0xaa, 0xa0, 0x0a, 0xaa, 0xaa, 0x15, 0xff, 0xff,
|
||||
0xc0, 0x00, 0x0a, 0xaa, 0xaa, 0xa0, 0x0a, 0xaa, 0xaa, 0x15, 0x7f, 0xff, 0xca, 0xa8, 0x0a, 0xaa,
|
||||
0xaa, 0xa0, 0x0a, 0xaa, 0xaa, 0x15, 0x5f, 0xff, 0xc0, 0x00, 0x0a, 0xaa, 0xaa, 0xa0, 0x0a, 0xaa,
|
||||
0xaa, 0x15, 0x5f, 0xff, 0xca, 0xa8, 0x0a, 0xaa, 0xaa, 0xa0, 0x0a, 0xaa, 0xaa, 0x15, 0x57, 0xff,
|
||||
0xc0, 0x00, 0x0a, 0xaa, 0xaa, 0xa0, 0x0a, 0xaa, 0xaa, 0x15, 0x55, 0xff, 0xca, 0xa8, 0x0a, 0xaa,
|
||||
0xaa, 0xa0, 0x0a, 0xaa, 0xaa, 0x15, 0x55, 0xff, 0xc0, 0x00, 0x0a, 0xaa, 0xaa, 0xa0, 0x0a, 0xaa,
|
||||
0xaa, 0x05, 0x55, 0x7f, 0xca, 0xa8, 0x0a, 0xaa, 0xaa, 0xa0, 0x0a, 0xaa, 0xaa, 0x05, 0x55, 0x5f,
|
||||
0xc0, 0x00, 0x0a, 0xaa, 0xa0, 0x20, 0x08, 0x0a, 0xaa, 0x00, 0x15, 0x5f, 0xca, 0xa8, 0x0a, 0xaa,
|
||||
0xaa, 0x20, 0x08, 0xaa, 0xaa, 0x00, 0x00, 0x03, 0xc0, 0x00, 0x0a, 0xaa, 0xaa, 0xa0, 0x0a, 0xaa,
|
||||
0xaa, 0x00, 0xaa, 0xa3, 0xca, 0xa0, 0x0a, 0xaa, 0xaa, 0xa0, 0x0a, 0xaa, 0xaa, 0x00, 0x00, 0x03,
|
||||
0xc0, 0x00, 0x0a, 0xaa, 0xaa, 0xa0, 0x0a, 0xaa, 0xaa, 0x00, 0xaa, 0xa3, 0xca, 0xa0, 0x0a, 0xaa,
|
||||
0xaa, 0xa0, 0x0a, 0xaa, 0xaa, 0x00, 0x00, 0x03, 0xc0, 0x00, 0x0a, 0xaa, 0xaa, 0xa0, 0x0a, 0xaa,
|
||||
0xaa, 0x00, 0x2a, 0xa3, 0xca, 0x80, 0x00, 0x0a, 0xaa, 0xa0, 0x0a, 0xaa, 0x00, 0x00, 0x00, 0x03,
|
||||
0xc0, 0x00, 0xaa, 0x82, 0xaa, 0xa0, 0x0a, 0xa8, 0x2a, 0xa0, 0x2a, 0xa3, 0xca, 0x02, 0xff, 0xe0,
|
||||
0xaa, 0xa0, 0x0a, 0xa0, 0xbf, 0xf8, 0x00, 0x03, 0xc0, 0x0b, 0x00, 0x38, 0x00, 0x00, 0x00, 0x02,
|
||||
0xc0, 0x0e, 0x0a, 0xa3, 0xc0, 0x2c, 0x40, 0x4e, 0x00, 0x00, 0x00, 0x0b, 0x10, 0x13, 0x80, 0x03,
|
||||
0xc0, 0xb1, 0x00, 0x13, 0x80, 0x00, 0x00, 0x2c, 0x40, 0x04, 0xe2, 0xa3, 0xc0, 0xb1, 0x00, 0x13,
|
||||
0x80, 0x00, 0x00, 0x2c, 0x40, 0x04, 0xe0, 0x03, 0xff, 0xfc, 0x40, 0x4f, 0xff, 0xff, 0xff, 0xff,
|
||||
0x10, 0x13, 0xff, 0xff, 0xff, 0xff, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x0f, 0xff, 0xff,
|
||||
];
|
||||
// car1
|
||||
pub const CAR1_WIDTH: u32 = 48;
|
||||
pub const CAR1_HEIGHT: u32 = 32;
|
||||
pub const CAR1_FLAGS: u32 = 1; // BLIT_2BPP
|
||||
pub const CAR1: [u8; 384] = [
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xfc, 0xa8, 0x0a, 0xaa, 0xaa, 0x00, 0x00, 0xaa,
|
||||
0xaa, 0x1f, 0xff, 0xff, 0xf0, 0x00, 0x0a, 0xaa, 0xaa, 0x80, 0x02, 0xaa, 0xaa, 0x1f, 0xff, 0xff,
|
||||
0xf2, 0xa8, 0x0a, 0xaa, 0xaa, 0x80, 0x02, 0xaa, 0xaa, 0x17, 0xff, 0xff, 0xc0, 0x00, 0x0a, 0xaa,
|
||||
0xaa, 0xa0, 0x0a, 0xaa, 0xaa, 0x15, 0xff, 0xff, 0xca, 0xa8, 0x0a, 0xaa, 0xaa, 0xa0, 0x0a, 0xaa,
|
||||
0xaa, 0x15, 0xff, 0xff, 0xc0, 0x00, 0x0a, 0xaa, 0xaa, 0xa0, 0x0a, 0xaa, 0xaa, 0x15, 0x7f, 0xff,
|
||||
0xca, 0xa8, 0x0a, 0xaa, 0xaa, 0xa0, 0x0a, 0xaa, 0xaa, 0x15, 0x5f, 0xff, 0xc0, 0x00, 0x0a, 0xaa,
|
||||
0xaa, 0xa0, 0x0a, 0xaa, 0xaa, 0x15, 0x5f, 0xff, 0xca, 0xa8, 0x0a, 0xaa, 0xaa, 0xa0, 0x0a, 0xaa,
|
||||
0xaa, 0x15, 0x57, 0xff, 0xc0, 0x00, 0x0a, 0xaa, 0xaa, 0xa0, 0x0a, 0xaa, 0xaa, 0x15, 0x55, 0xff,
|
||||
0xca, 0xa8, 0x0a, 0xaa, 0xaa, 0xa0, 0x0a, 0xaa, 0xaa, 0x15, 0x55, 0xff, 0xc0, 0x00, 0x0a, 0xaa,
|
||||
0xaa, 0xa0, 0x0a, 0xaa, 0xaa, 0x05, 0x55, 0x7f, 0xca, 0xa8, 0x0a, 0xaa, 0xaa, 0xa0, 0x0a, 0xaa,
|
||||
0xaa, 0x05, 0x55, 0x5f, 0xc0, 0x00, 0x0a, 0xaa, 0xa0, 0x20, 0x08, 0x0a, 0xaa, 0x00, 0x15, 0x5f,
|
||||
0xca, 0xa8, 0x0a, 0xaa, 0xaa, 0x20, 0x08, 0xaa, 0xaa, 0x00, 0x00, 0x03, 0xc0, 0x00, 0x0a, 0xaa,
|
||||
0xaa, 0xa0, 0x0a, 0xaa, 0xaa, 0x00, 0xaa, 0xa3, 0xca, 0xa0, 0x0a, 0xaa, 0xaa, 0xa0, 0x0a, 0xaa,
|
||||
0xaa, 0x00, 0x00, 0x03, 0xc0, 0x00, 0x0a, 0xaa, 0xaa, 0xa0, 0x0a, 0xaa, 0xaa, 0x00, 0xaa, 0xa3,
|
||||
0xca, 0xa0, 0x0a, 0xaa, 0xaa, 0xa0, 0x0a, 0xaa, 0xaa, 0x00, 0x00, 0x03, 0xc0, 0x00, 0x0a, 0xaa,
|
||||
0xaa, 0xa0, 0x0a, 0xaa, 0xaa, 0x00, 0x2a, 0xa3, 0xca, 0x80, 0x00, 0x0a, 0xaa, 0xa0, 0x0a, 0xaa,
|
||||
0x00, 0x00, 0x00, 0x03, 0xc0, 0x00, 0xaa, 0x82, 0xaa, 0xa0, 0x0a, 0xa8, 0x2a, 0xa0, 0x2a, 0xa3,
|
||||
0xca, 0x02, 0xff, 0xe0, 0xaa, 0xa0, 0x0a, 0xa0, 0xbf, 0xf8, 0x00, 0x03, 0xc0, 0x0b, 0xff, 0xf8,
|
||||
0x00, 0x00, 0x00, 0x02, 0xff, 0xfe, 0x0a, 0xa3, 0xc0, 0x2f, 0x04, 0x3e, 0x00, 0x00, 0x00, 0x0b,
|
||||
0xc1, 0x0f, 0x80, 0x03, 0xc0, 0xbc, 0x51, 0x4f, 0x80, 0x00, 0x00, 0x2f, 0x14, 0x53, 0xe2, 0xa3,
|
||||
0xc0, 0xb0, 0x00, 0x03, 0x80, 0x00, 0x00, 0x2c, 0x00, 0x00, 0xe0, 0x03, 0xff, 0xf0, 0x00, 0x03,
|
||||
0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0xff, 0xff, 0xff, 0xfc, 0x51, 0x4f, 0xff, 0xff, 0xff, 0xff,
|
||||
0x14, 0x53, 0xff, 0xff, 0xff, 0xff, 0x04, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xc1, 0x0f, 0xff, 0xff,
|
||||
];
|
Loading…
Reference in a new issue