null check to squash bug. some gfx
This commit is contained in:
parent
19258268b0
commit
a3f0474ec9
11 changed files with 60 additions and 42 deletions
|
|
@ -41,12 +41,12 @@ void spawnEnemy(u8 type, u8 zone){
|
|||
enemies[i].pos.x = randX;
|
||||
enemies[i].pos.y = randY;
|
||||
enemies[i].off = 16;
|
||||
enemies[i].image = SPR_addSprite(&butterflySprite,
|
||||
enemies[i].image = SPR_addSprite(&fairySprite,
|
||||
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 = random() % 2 < 1 ? 128 : 384;
|
||||
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);
|
||||
if(!enemies[i].image){
|
||||
enemies[i].active = FALSE;
|
||||
return;
|
||||
}
|
||||
for(u8 j = 0; j < PROP_COUNT; j++){
|
||||
enemies[i].ints[j] = 0;
|
||||
}
|
||||
|
|
@ -55,6 +55,8 @@ void spawnEnemy(u8 type, u8 zone){
|
|||
loadEnemyOne(i);
|
||||
break;
|
||||
}
|
||||
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);
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -84,8 +86,8 @@ static void updateEnemy(u8 i){
|
|||
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);
|
||||
enemies[i].onScreen = (dx >= -CULL_LIMIT && dx <= CULL_LIMIT);
|
||||
SPR_setVisibility(enemies[i].image, enemies[i].onScreen ? VISIBLE : HIDDEN);
|
||||
SPR_setPosition(enemies[i].image, sx - enemies[i].off, sy - enemies[i].off);
|
||||
|
||||
enemies[i].clock++;
|
||||
|
|
@ -97,5 +99,5 @@ void updateEnemies(){
|
|||
enemyCount = 0;
|
||||
for(s16 i = 0; i < ENEMY_COUNT; i++) if(enemies[i].active)
|
||||
updateEnemy(i);
|
||||
intToStr(enemyCount, debugStr, 1);
|
||||
// intToStr(enemyCount, debugStr, 1);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue