Exemplo n.º 1
0
        private void CheckPlatform(Map gameMap)
        {
            Vector2 checkPos;

            // Left
            if (Speed.X < 0)
            {
                checkPos.X = collRect.Left - (Map.TILE_WIDTH/2);
                checkPos.Y = collRect.Bottom + (Map.TILE_HEIGHT / 2);
                if (gameMap.GetTileAt(checkPos) == 0)
                {
                    faceDir = 1;
                }
            }

            // Right
            if (Speed.X > 0)
            {
                checkPos.X = collRect.Right + (Map.TILE_WIDTH/2);
                checkPos.Y = collRect.Bottom + (Map.TILE_HEIGHT / 2);
                if (gameMap.GetTileAt(checkPos) == 0)
                {
                    faceDir = -1;
                }
            }
        }
Exemplo n.º 2
0
        private void CheckCollisions(Map gameMap)
        {
            Vector2 checkPos;

            // First, check collsions downwards
            if (Speed.Y > 0)
            {
                checkPos.Y = collRect.Bottom + Speed.Y;
                for (checkPos.X = collRect.Left + 4; checkPos.X <= collRect.Right - 4; checkPos.X += collRect.Width / 8)
                    if (gameMap.GetTileAt(checkPos) > 0)
                    {
                        Speed.Y = 0;
                    }
            }

            //  Up
            if (Speed.Y < 0)
            {
                checkPos.Y = collRect.Top + Speed.Y;
                for (checkPos.X = collRect.Left + 4; checkPos.X <= collRect.Right - 4; checkPos.X += collRect.Width / 8)
                    if (gameMap.GetTileAt(checkPos) > 0)
                    {
                        Speed.Y = 0;
                    }
            }

            // Left
            if (Speed.X < 0)
            {
                checkPos.X = collRect.Left + Speed.X;
                for (checkPos.Y = collRect.Top + 4; checkPos.Y <= collRect.Bottom - 4; checkPos.Y += collRect.Height / 8)
                    if (gameMap.GetTileAt(checkPos) > 0)
                    {
                        Speed.X = 0;
                        faceDir = 1;
                    }
            }

            // Right
            if (Speed.X > 0)
            {
                checkPos.X = collRect.Right + Speed.X;
                for (checkPos.Y = collRect.Top + 4; checkPos.Y <= collRect.Bottom - 4; checkPos.Y += collRect.Height / 8)
                    if (gameMap.GetTileAt(checkPos) > 0)
                    {
                        Speed.X = 0;
                        faceDir = -1;
                    }
            }
        }