From ad71177251ba7c3dc254fdc24551f28b3e5e7fae Mon Sep 17 00:00:00 2001 From: Trevor Boddy Date: Sat, 14 Feb 2026 23:09:57 -0500 Subject: [PATCH] breakout enemy update --- src/enemies.h | 27 +++++++++------------------ src/enemytypes.h | 17 +++++++++++++++++ 2 files changed, 26 insertions(+), 18 deletions(-) create mode 100644 src/enemytypes.h diff --git a/src/enemies.h b/src/enemies.h index cb4a002..edd649a 100644 --- a/src/enemies.h +++ b/src/enemies.h @@ -1,3 +1,6 @@ + +#include "enemytypes.h" + #define ENEMY_MIN_DIST FIX32(64) static bool isValidEnemyPosition(fix32 x, fix32 y) { @@ -67,31 +70,19 @@ static void updateEnemy(u8 i){ enemies[i].pos.x += enemies[i].vel.x; enemies[i].pos.y += enemies[i].vel.y; + switch(enemies[i].type){ + case 0: + updateEnemyOne(i); + break; + } + s16 sx = getScreenX(enemies[i].pos.x, player.camera); s16 sy = fix32ToInt(enemies[i].pos.y); - fix32 dx = getWrappedDelta(enemies[i].pos.x, player.pos.x); bool onScreen = (dx >= FIX32(-256) && dx <= FIX32(256)); SPR_setVisibility(enemies[i].image, onScreen ? VISIBLE : HIDDEN); - SPR_setPosition(enemies[i].image, sx - enemies[i].off, sy - enemies[i].off); - if(enemies[i].clock % 20 == enemies[i].ints[0]){ - struct bulletSpawner spawner = { - .x = enemies[i].pos.x, - .y = enemies[i].pos.y, - .anim = 6 + (random() % 3), - // .frame = 1, - .speed = FIX32(4), - .angle = random() % 128, - }; - if(random() % 2 < 1) spawner.anim += 3; - for(u8 j = 0; j < 8; j++){ - spawnBullet(spawner, EMPTY); - spawner.angle += 128; - } - } - enemies[i].clock++; if(enemies[i].clock >= CLOCK_LIMIT) enemies[i].clock = 0; enemyCount++; diff --git a/src/enemytypes.h b/src/enemytypes.h new file mode 100644 index 0000000..8e6812d --- /dev/null +++ b/src/enemytypes.h @@ -0,0 +1,17 @@ +void updateEnemyOne(u8 i){ + if(enemies[i].clock % 20 == enemies[i].ints[0]){ + struct bulletSpawner spawner = { + .x = enemies[i].pos.x, + .y = enemies[i].pos.y, + .anim = 6 + (random() % 3), + // .frame = 1, + .speed = FIX32(4), + .angle = random() % 128, + }; + if(random() % 2 < 1) spawner.anim += 3; + for(u8 j = 0; j < 8; j++){ + spawnBullet(spawner, EMPTY); + spawner.angle += 128; + } + } +} \ No newline at end of file