예제 #1
0
 public void Attack(bool bomb)
 {
     if (bomb)
     {
         if (myGame.level.mainCharacter.state is AliveState)
         {
             bombItem.canMove   = true;
             bombItem.isVisible = true;
             bombUpdate         = true;
             bombItem.position  = new Vector2(position.X, bombItem.position.Y);
         }
     }
     else
     {
         bombUpdate = false;
         if (beamMeter.BeamPercent > GameConstants.Three)
         {
             beamMeter.DecreaseBeamPercentBy(GameConstants.Three);
             if (myGame.level.mainCharacter.state is AliveState && beamMeter.BeamPercent > GameConstants.Three)
             {
                 AliveState f = myGame.level.mainCharacter.state as AliveState;
                 f.beam = true;
                 myGame.level.mainCharacter.state = f;
             }
         }
     }
 }
예제 #2
0
 public MainCharacter(Game1 game, Vector2 position)
 {
     myGame        = game;
     state         = new AliveState(this);
     state.Sprite  = CharacterSpriteFactory.Instance.CreateFlyingUFOSprite();
     beamMeter     = new BeamMeter(myGame);
     this.position = position;
     canMove       = true;
     scoreCounter  = 0;
     gravity       = GameConstants.UFOInitialGravity;
     animated      = false;
     isVisible     = true;
     isScored      = false;
     IsJumping     = false;
     JumpCounter   = 0;
     bombUpdate    = false;
     bombItem      = new Bomb(new Vector2(position.X + 20, position.Y + 64));
 }