我正在制作一个类似的精灵游戏,我需要让我的雪碧像在精灵的游戏一样移动。我的意思是,瓦片到瓦片,从一个单元到另一个单元。我使用的是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大,很难让玩家进入。
https://stackoverflow.com/questions/21468415
复制相似问题