【发布时间】:2013-11-16 14:59:36
【问题描述】:
当没有按下任何移动或动作键时,我正试图阻止我的角色执行动画。
我有一个暂停动画的功能,但我不确定如何在不完全停止角色移动的情况下实现它。
这是我在PlayerSprite 更新中所做的:
this.move = (int)(GameData.PLAYER_MOVE_INCREMENT * gameTime.ElapsedGameTime.Milliseconds);
if (SpriteManager.GAME.KEYBOARDMANAGER.isKeyDown(leftKey))
{
MoveBy(-move, 0);
this.PRESENTATIONINFO.SPRITEEFFECTS = SpriteEffects.FlipHorizontally;
}
if (SpriteManager.GAME.KEYBOARDMANAGER.isKeyDown(rightKey))
{
MoveBy(move, 0);
this.PRESENTATIONINFO.SPRITEEFFECTS = SpriteEffects.None;
}
if (SpriteManager.GAME.KEYBOARDMANAGER.isFirstKeyPress(Keys.Space))
{
bPause = !bPause;
}
当我按下空格键时动画会暂停,但我希望它在没有按下任何键时暂停以产生角色静止不动的效果。
提前致谢。
我通过这样做修复了它:
bPause = true;
this.move = (int)(GameData.PLAYER_MOVE_INCREMENT * gameTime.ElapsedGameTime.Milliseconds);
if (SpriteManager.GAME.KEYBOARDMANAGER.isKeyDown(leftKey))
{
bPause = false;
MoveBy(-move, 0);
this.PRESENTATIONINFO.SPRITEEFFECTS = SpriteEffects.FlipHorizontally;
}
if (SpriteManager.GAME.KEYBOARDMANAGER.isKeyDown(rightKey))
{
bPause = false;
MoveBy(move, 0);
this.PRESENTATIONINFO.SPRITEEFFECTS = SpriteEffects.None;
}
if (SpriteManager.GAME.KEYBOARDMANAGER.isFirstKeyPress(Keys.Space))
{
bPause = false;
}
【问题讨论】:
标签: c# xna sprite sprite-sheet