Esempio n. 1
0
 public void CheckMapCollision(Map pMap)
 {
     if (CollisionBox.Right > pMap.AccessArea.Right)
     {
         PositionX = pMap.AccessArea.Right - CollisionBox.Width;
         mSpeedX = 0;
         mSpeedX = 0;
     }
     else if (CollisionBox.Left < pMap.AccessArea.Left)
     {
         PositionX = pMap.AccessArea.Left;
         mSpeedX = 0;
         mSpeedX = 0;
     }
     if (CollisionBox.Bottom > pMap.AccessArea.Bottom)
     {
         PositionY = pMap.AccessArea.Bottom - CollisionBox.Height;
         mSpeedY = 0;
         mSpeedY = 0;
         mJumping = false;
     }
     else if (CollisionBox.Top < pMap.AccessArea.Top)
     {
         PositionY = pMap.AccessArea.Top;
         mSpeedY = 0;
         mSpeedY = 0;
     }
 }
Esempio n. 2
0
 protected void UpdateMovement(Map pMap)
 {
     double TmpSpeed = mSpeedX;
     HandleInput();
     if (mSpeedX == TmpSpeed)
         PerformStaticFriction();
     PerformGravity();
     PerformAirFriction();
     PerformRecoil(pMap);
     Move(Speed, pMap);
     Console.WriteLine(mSpeedX.ToString() + " " + mSpeedY.ToString());
 }
Esempio n. 3
0
 protected void PerformRecoil(Map pMap)
 {
     if (((int)mSpeedX > 0 && TmpCollisionCheckedVector(CollisionBox, (int)mSpeedX, 0, pMap.mBlocks).X == 0)
         || ((int)mSpeedX < 0 && TmpCollisionCheckedVector(CollisionBox, (int)mSpeedX, 0, pMap.mBlocks).X == 0)
         )
     {
         mSpeedX = -mSpeedX * RecoilX;
     }
     if (((int)mSpeedY > 0 && TmpCollisionCheckedVector(CollisionBox, 0, (int)mSpeedY, pMap.mBlocks).Y == 0)
         || ((int)mSpeedY < 0 && TmpCollisionCheckedVector(CollisionBox, 0, (int)mSpeedY, pMap.mBlocks).Y == 0)
         )
     {
         if ((int)(-mSpeedY * RecoilY) == 0 && mSpeedY > 0)
             mJumping = false;
         mSpeedY = -mSpeedY * RecoilY;
     }
 }
Esempio n. 4
0
 public void Update(Map pMap)
 {
     UpdateMovement(pMap);
 }
Esempio n. 5
0
 public void Move(int pDeltaX, int pDeltaY, Map pMap)
 {
     Position += TmpCollisionCheckedVector(CollisionBox, pDeltaX, pDeltaY, pMap.mBlocks);
     CheckMapCollision(pMap);
 }
Esempio n. 6
0
 //public void Jump(GameTime gameTime, Map map)
 //{
 //    if (Collision.CollisionCheckedVector(CollisionBox, 0, -1, map.mBlocks).Y < 0)
 //    {
 //        if (!jump)
 //        {
 //            spine.anim("jump", 0, false);
 //            jump = true;
 //            jumptimer = Game1.time.TotalMilliseconds;
 //        }
 //        float t = (float)((Game1.time.TotalMilliseconds - jumptimer) / 1000);
 //        int deltay = (int)(-jumppower + (gravitation * t));
 //        if (deltay > 0)
 //        {
 //            jump = false;
 //            fall = true;
 //            falltimer = Game1.time.TotalMilliseconds;
 //        }
 //        else
 //        {
 //            Move(0, deltay, map); //v(t)=-g*t
 //        }
 //    }
 //    else
 //    {
 //        jump = false;
 //    }
 //}
 public void Move(Vector2 pDelta, Map pMap)
 {
     Move((int)pDelta.X, (int)pDelta.Y, pMap);
 }