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); }
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 ); } }