diff --git a/Examples/drboy/src/gameloop.rs b/Examples/drboy/src/gameloop.rs index a5b7a3d..d01a72f 100644 --- a/Examples/drboy/src/gameloop.rs +++ b/Examples/drboy/src/gameloop.rs @@ -25,6 +25,7 @@ pub unsafe fn gameloop() { p.active = true } } + vec_enemies.iter_mut().for_each(|f| { if f.active { sprites::draw_override(f.rect.x * 8, f.rect.y * 8, f.bitmap, f.bitmap_frame); @@ -58,6 +59,9 @@ pub unsafe fn gameloop() { } }); if arduboy.every_x_frames((p.speed * 2) as u8) && enemy_count < 30 { + if enemy_count > 8 { + let _ = vec_enemies.remove(0); + } vec_enemies .push(Enemy { active: true, @@ -113,6 +117,10 @@ pub unsafe fn gameloop() { p.speed_change = true; p.speed -= 1 } + if p.counter == 30 { + p.level += 1; + p.gamemode = GameMode::NextLevel; + } } progmem!(); diff --git a/Examples/drboy/src/lib.rs b/Examples/drboy/src/lib.rs index 86ef923..21be8c2 100644 --- a/Examples/drboy/src/lib.rs +++ b/Examples/drboy/src/lib.rs @@ -29,6 +29,7 @@ pub struct Player { pub immortal_frame_count: u8, pub active: bool, pub live: u8, + pub level: u8, pub speed: u8, pub speed_change: bool, pub counter: u8, @@ -41,6 +42,7 @@ pub struct Player { pub static mut p: Player = Player { gamemode: GameMode::Titlescreen, live: 3, + level: 1, immortal: false, immortal_frame_count: 0, active: true, @@ -141,7 +143,7 @@ pub unsafe extern "C" fn loop_() { arduboy.display(); } pub static mut enemy_count: u8 = 0; -pub static mut vec_enemies: Vec = Vec::::new(); +pub static mut vec_enemies: Vec = Vec::::new(); progmem!( static text_gameover: [u8; _] = *b"Game Over\0"; static text_levelwin: [u8; _] = *b"Congrats\0";