breakout enemy update
This commit is contained in:
parent
7d0f4a233c
commit
ad71177251
2 changed files with 26 additions and 18 deletions
|
|
@ -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++;
|
||||
|
|
|
|||
17
src/enemytypes.h
Normal file
17
src/enemytypes.h
Normal file
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue