예제 #1
0
 private void MoveKoopas()
 {
     koopaOne.SetPosition(new Vector2(koopaOne.Location.X - side.Collision.Width / 2,
                                      koopaOne.Location.Y));
     koopaTwo.SetPosition(new Vector2(koopaTwo.Location.X + side.Collision.Width / 2,
                                      koopaTwo.Location.Y));
 }
예제 #2
0
        public void UpdatePosition()
        {
            if (YVelocity > PhysicsUtilites.GlobalGravityCoef * 3 &&
                Koopa is RedKoopa &&
                Koopa.Health == KoopaStateMachine.KoopaHealth.Normal)
            {
                YVelocity = 0;
                float x = (float)(.6 * (XVelocity / XVelocity)) + Koopa.Location.X;
                Koopa.SetPosition(new Vector2(x, Koopa.Location.Y));
                Koopa.ChangeDirection();
            }
            PhysicsUtilites.ClampVelocity((IPhysics)this);
            double xPos = (int)Koopa.Location.X;
            double yPos = (int)Koopa.Location.Y;

            xPos += Math.Round(XVelocity);
            yPos += Math.Round(YVelocity);
            Vector2 pos = ClampPosition(xPos, yPos);

            Koopa.Location             = pos;
            Koopa.DestinationRectangle = new Rectangle((int)pos.X, (int)pos.Y,
                                                       Koopa.DestinationRectangle.Width, Koopa.DestinationRectangle.Height);
            XVelocity  = XVelocity;
            YVelocity += GravityCoef;
        }
 public void Execute()
 {
     Mario.marioCanTransition         = false;
     Mario.marioCanTransitionLeftPipe = false;
     if (Mario is StarMario)
     {
         Koopa.KillKoopa();
         Game.RumbleHelper.Rumble(PlayerIndex.One, Game.RumbleHelper.LowRumble, Game.RumbleHelper.LowRumble, Game.RumbleHelper.QuickRumble);
     }
     else
     {
         if (Koopa.Health == KoopaStateMachine.KoopaHealth.Shelled)
         {
             if (!Koopa.Physics.IsMovingX())
             {
                 MarioSoundBoard.Instance.PlayMarioKick();
                 Koopa.Physics.XVelocity = Koopa.Physics.XMinVelocity;
                 Vector2 loc = Koopa.Location;
                 loc.X -= Side.Collision.Width;
                 Koopa.SetPosition(loc);
                 Game.RumbleHelper.Rumble(PlayerIndex.One, Game.RumbleHelper.LowRumble, Game.RumbleHelper.LowRumble, Game.RumbleHelper.QuickRumble);
             }
             else
             {
                 Mario.TakeDamage();
                 Game.RumbleHelper.Rumble(PlayerIndex.One, Game.RumbleHelper.MidRumble, Game.RumbleHelper.MidRumble, Game.RumbleHelper.ShortRumble);
             }
         }
         else
         {
             Mario.TakeDamage();
             Game.RumbleHelper.Rumble(PlayerIndex.One, Game.RumbleHelper.MidRumble, Game.RumbleHelper.MidRumble, Game.RumbleHelper.ShortRumble);
         }
     }
 }
 private void MoveEnemies()
 {
     Goomba.SetPosition(new Vector2(Goomba.Location.X - Side.Collision.Width / 2,
                                    Goomba.Location.Y));
     Koopa.SetPosition(new Vector2(Koopa.Location.X + Side.Collision.Width / 2,
                                   Koopa.Location.Y));
 }
 private void Movekoopa()
 {
     if (collision.Width > collision.Height)
     {
         koopa.SetPosition(new Vector2(koopa.DestinationRectangle.X,
                                       koopa.DestinationRectangle.Y - collision.Height));
     }
     else if (collision.Height > collision.Width)
     {
         if (side.BottomOrRight is IKoopa)
         {
             koopa.SetPosition(koopa.Location = new Vector2(koopa.DestinationRectangle.X +
                                                            collision.Width, koopa.DestinationRectangle.Y));
         }
         else
         {
             koopa.SetPosition(new Vector2(koopa.DestinationRectangle.X -
                                           collision.Width, koopa.DestinationRectangle.Y));
         }
         koopa.ChangeDirection();
     }
 }
예제 #6
0
 private void StackEnemies()
 {
     Koopa.Physics.YVelocity = 0;
     Koopa.SetPosition(new Vector2(Koopa.Location.X, Koopa.Location.Y
                                   - Side.Collision.Height));
 }