【发布时间】:2014-02-23 11:02:04
【问题描述】:
我正在制作一个类似口袋妖怪的游戏,我需要让我的 Sprite 像在口袋妖怪的游戏中一样移动。 我的意思是,平铺到平铺,单元到单元。我正在使用 tIDE(一个平铺地图编辑器),我的平铺宽度是 32px。我希望玩家在移动过程中每 32px 移动 32px 并带有动画。和口袋妖怪里的一模一样。因此,如果我按住一个键,玩家会不断移动,如果我按一次键,他只会移动一次,所以 32px。
这是我目前的移动功能:
public void movePlayer(String keyDown, GameTime gameTime)
{
if (keyDown == "up")
{
playerPosition.Y -= 2;
//Animation part, with a timer to switch animation
if (time > 0)
{
directionSprite = directionSpriteTab[4];
time -= gameTime.ElapsedGameTime.Milliseconds;
time2 = interval;
}
if (time2 > 0 && time <= 0)
{
directionSprite = directionSpriteTab[5];
time2 -= gameTime.ElapsedGameTime.Milliseconds;
}
if (time2 <= 0 && time <= 0)
{
time = interval;
}
}
//same for other keys ...
}
使用该代码,我的玩家可以顺利移动,但是当我停止按键时,他会停在两个瓷砖之间,碰撞真的很烦人,例如当我想进入一所房子时,门有 32px 大,很难制作玩家进入。
【问题讨论】:
标签: xna sprite game-physics