Пример #1
0
Bullet::Bullet(SDL_Renderer* renderer, float x , float y , int speed , ID IdType , float angle , INFO *information)
{
    GameObject::Init(renderer,x,y,IdType , information);
    Bullet::speed = speed;
    Bullet::angle = angle;
    speedX = 0;
    speedY = 0;

    GenerateBullet(x,y);

}
Пример #2
0
void Craft::Update_Fire()
{

	if( State == CRAFT_STATE_SHOOTING )
	{
		AnimationDelay = (AnimationDelay + 1) % CRAFT_ANIMATION_SHOOT_DELAY;
		if( AnimationDelay == 0 )
		{
			AnimationIndex++;

			if( AnimationIndex == CRAFT_ANIMATION_SHOOT_FRAMES )
			{
				SetState( CRAFT_STATE_NORMAL );
				// Don't return so can rapid-fire
			}
		}
	}

	// Can't fire unless normal
	if( State == CRAFT_STATE_NORMAL && (Input & INPUT_FIRE1) == INPUT_FIRE1 )
	{
		
		switch( SpreadUpgrade )
		{
			case 1:
				GenerateBullet( -(SP_ONE / 8) );
				GenerateBullet( (SP_ONE / 8) );
				break;
			case 5:
				GenerateBullet( -((SP_ONE / 10) * 4) );
				GenerateBullet( ((SP_ONE / 10) * 4) );
			case 4:
				GenerateBullet( -((SP_ONE / 4) * 3) );
				GenerateBullet( ((SP_ONE / 4) * 3) );
			case 3:
				GenerateBullet( -((SP_ONE / 4) * 2) );
				GenerateBullet( ((SP_ONE / 4) * 2) );
			case 2:
				GenerateBullet( -(SP_ONE / 8) );
				GenerateBullet( (SP_ONE / 8) );
			case 0:
				GenerateBullet( 0 );
				break;
		}
		SetState( CRAFT_STATE_SHOOTING );
	}
}