void update_enemies() { for( int i = 0; i < enemy_num; i++ ) { if( enemies[i].row != 0 ) { enemies[i].col--; draw_entity( &enemies[i], enemy ); } } }
void run_entites() { entity_t *e; int i; for (i = 0, e = &entity_list[0];i < num_entities; i++, e++) { // Move entitys // Do s***e draw_entity(e); } }
void update_projectiles() { for( int i = 0; i < projectile_num; i++ ) { if( projectiles[i].row != 0 ) { projectiles[i].col += 3; draw_entity( &projectiles[i], ship ); } } }
void gameLoop() { // Set our game data shipRow = 55; shipCol = 0; enemyCol = 225; enemy_num = 0; projectile_num = 0; time_diff = 0; kills = 0; REG_DISPCNT = MODE3 | BG2_ENABLE; EntityClass player_ship; initialize_entity( &player_ship, SHIP_WIDTH, SHIP_HEIGHT, shipRow, shipCol ); EntityClass enemy; initialize_entity( &enemy, 0, 0, 0, 0 ); enemies[max_enemies+1] = enemy; while (lives != 0) { // Check if player won the level. if( kills == 10 ) { state = WIN; break; } // Draw background drawImage3( 0, 0, BACKGROUND_WIDTH, BACKGROUND_HEIGHT, background ); // Draw ship draw_entity( &player_ship, ship ); // Generate enemy if( time_diff <= 0 && enemy_num < 10 ) { time_diff = 75; int rand_row = ( rand() % (120+1-20) ) + 20; generate_enemy( rand_row, enemyCol ); } // Draw Enemy update_enemies(); // Draw each projectile update_projectiles(); // Check if player is dead. if( is_player_dead( &player_ship ) == 1 ) { lives--; gameLoop(); } check_collisions(); remove_old_projectiles(); remove_old_enemies(); // Draw lives for( int i = 0; i < lives; i++ ) { drawImage3( 140, 170 + ( i * 25 ), SHIP_WIDTH, SHIP_HEIGHT, ship ); } waitForVblank(); // If player hits 'select' return to titleScreen and start game over. if( KEY_DOWN_NOW( BUTTON_SELECT ) ) { state = TITLE; break; } // Player Actions if( KEY_DOWN_NOW( BUTTON_DOWN ) ) { if( get_row( &player_ship ) < 121 ) move_entity( &player_ship, 2, 0 ); } if( KEY_DOWN_NOW( BUTTON_UP ) ) { if( get_row( &player_ship ) > 20 ) move_entity( &player_ship, -2, 0 ); } if( KEY_DOWN_NOW( BUTTON_A ) ) { while( KEY_DOWN_NOW( BUTTON_A ) ) { ; } fire_weapon( &player_ship ); } time_diff--; } if( lives == 0 ) { state = GAME_OVER; } else if( state == WIN ) return; }