0

移動またはアクション キーが押されていないときに、キャラクターがアニメーションを実行するのを止めようとしています。
アニメーションを一時停止する機能がありますが、キャラクターの動きを完全に停止せずに実装する方法がわかりません。

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;
}
4

1 に答える 1

0
if (SpriteManager.GAME.KEYBOARDMANAGER.isKeyDown(leftKey))
{
   bPause = false;
   MoveBy(-move, 0);
   this.PRESENTATIONINFO.SPRITEEFFECTS = SpriteEffects.FlipHorizontally;
}
else if (SpriteManager.GAME.KEYBOARDMANAGER.isKeyDown(rightKey))
{
   bPause = false;
   MoveBy(move, 0);
   this.PRESENTATIONINFO.SPRITEEFFECTS = SpriteEffects.None;
}
else
{
   bPause = true;
}
于 2013-11-05T17:44:33.757 に答える