enemy bullets

This commit is contained in:
t. boddy 2026-02-14 21:29:18 -05:00
parent 7f935f0514
commit 30734885e4
3 changed files with 28 additions and 5 deletions

View file

@ -4,13 +4,14 @@ void spawnEnemy(u8 type){
for(s16 j = 0; j < ENEMY_COUNT; j++) if(!enemies[j].active && i == -1) i = j;
if(i > -1){
enemies[i].active = TRUE;
enemies[i].type = type;
enemies[i].pos.x = FIX32(64);
enemies[i].pos.y = FIX32(64);
enemies[i].off = 16;
enemies[i].image = SPR_addSprite(&butterflySprite,
getScreenX(enemies[i].pos.x, player.camera) - enemies[i].off, fix32ToInt(enemies[i].pos.y) - enemies[i].off, TILE_ATTR(gameOver ? PAL1 : PAL0, 0, 0, 0));
enemies[i].angle = 128;
enemies[i].speed = FIX32(0.25);
enemies[i].speed = FIX32(1);
enemies[i].vel.x = fix32Mul(fix16ToFix32(cosFix16(enemies[i].angle)), enemies[i].speed);
enemies[i].vel.y = fix32Mul(fix16ToFix32(sinFix16(enemies[i].angle)), enemies[i].speed);
}
@ -41,6 +42,24 @@ static void updateEnemy(u8 i){
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 % 45 == 0){
struct bulletSpawner spawner = {
.x = enemies[i].pos.x,
.y = enemies[i].pos.y,
.anim = 7,
// .frame = 1,
.speed = FIX32(2),
.angle = random() % 128,
};
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++;
}