Example #1
0
void update_enemies()
{
    for( int i = 0; i < enemy_num; i++ )
    {
        if( enemies[i].row != 0 )
        {
            enemies[i].col--;
            draw_entity( &enemies[i], enemy );
        }
    }
}
Example #2
0
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);
	}
}
Example #3
0
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 );
        }
    }
}
Example #4
0
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;
}