в моей игре XNA (кстати, я довольно новичок в XNA), я хотел бы, чтобы мой спрайт-земля игрока была на вершине платформы. у меня есть класс спрайта плеера, который унаследован от моего обычного класса спрайта, и обычный класс спрайта для
основные неиграбельные спрайты, такие как коробки, фоновые вещи и платформы. Тем не менее, я не уверен, как реализовать способ заставить моего игрока спрайт приземлиться на платформе.
Мой игрок Sprite может прыгать и передвигаться, но я не знаю, где и как проверить, находится ли он поверх моего спрайта платформы.
Мой метод прыжка спрайтов игрока здесь
private void Jump()
{
if (mCurrentState != State.Jumping)
{
mCurrentState = State.Jumping;
mStartingPosition = Position;
mDirection.Y = MOVE_UP;
mSpeed = new Vector2(jumpSpeed, jumpSpeed);
}
}
mStartingPosition - спрайт игрока, начальная позиция прыжка, а Position - спрайт игрока, текущая позиция. Я думаю, что мой код для проверки, находится ли мой спрайт игрока поверх моего спрайта платформы. Я не уверен, как ссылаться на мой спрайт платформы внутри класса Playersprite и внутри метода jump.
я думаю, что это должно быть что-то вроде этого
//platformSprite.CollisonBox would be the rectangle around the platform, but im not
//sure how to check to see if player.Position is touching any point
//on platformSprite.CollisionBox
if(player.Position == platformSprite.CollisionBox)
{
player.mDirection = 0;
}
Опять же, я довольно новичок в программировании и XNA, и некоторые из этой логики я не совсем понимаю, поэтому любая помощь по любому из них будет принята с благодарностью: D
Спасибо