Example #1
0
        public void ThrowObject()
        {
            Sprite originalSprite = HoldedSprite;

            Rectangle originalSpriteCore = originalSprite.core;
            Vector2   newPosition        = MovementManager.GetRectNextTo(originalSpriteCore, bounds, direction);

            originalSpriteCore.X = (int)newPosition.X;
            originalSpriteCore.Y = (int)newPosition.Y;

            newPosition               = MovementManager.MoveVector(new Vector2(originalSpriteCore.X, originalSpriteCore.Y), Tile.size, direction);
            originalSpriteCore.X      = (int)newPosition.X;
            originalSpriteCore.Y      = (int)newPosition.Y;
            originalSprite.canCollide = true;
            HoldedSprite.MapDepth     = Game.MapDepth.player;
            bool passable = originalSprite.passable;

            originalSprite.passable = false;
            if (!movementManager.CollisionCheck(originalSprite, originalSpriteCore) && movementManager.InsideMap(originalSprite, originalSpriteCore))
            {
                DiscardObject();

                originalSprite.position.X = originalSpriteCore.X;
                originalSprite.position.Y = originalSpriteCore.Y;
                map.AddObject(originalSprite);
            }
            originalSprite.passable = passable;
        }
Example #2
0
 private void Jump()
 {
     if (!jumping)
     {
         int VectorMoveTo = 0;
         if (direction == MovementManager.Direction.down || direction == MovementManager.Direction.up)
         {
             VectorMoveTo = maxJumpingHeight;
         }
         if (direction == MovementManager.Direction.right || direction == MovementManager.Direction.left)
         {
             VectorMoveTo = maxJumpingWidth;
         }
         Rectangle collisionRect   = core;
         Vector2   collisionVector = MovementManager.MoveVector(position, VectorMoveTo, direction); //TODO: something is wrong here. i can smell it
         collisionRect.X = (int)collisionVector.X;
         collisionRect.Y = (int)collisionVector.Y;
         if (!movementManager.CollisionCheck(this, collisionRect))
         {
             Game.content.Load <SoundEffect>("Audio\\Waves\\fart").Play();
             originalJumpingPosition = position;
             canCollide = false;
             passable   = true;
             jumping    = true;
             return;
         }
     }
 }