アニメーションを逆再生させることでドワーフを立ち上がらたいと思います。しかし、AnimationEnded イベントを使用できません。なぜならアニメーションが終了するか開始されるときにだけ実行されるからです
○「かがみ中」のときに「Spaceキー」が押された場合、逆再生し立ち上がらせ始めます。SpeedFactor を 0 に設定し、自動アニメーションを無効にし、「立ち上がり」状態に変更します。
// Add this to the if (state == "stayCrouched") block in the UpdateState method
if (keyState.IsKeyDown(Keys.Space))
{
crouch.ElapsedTime = crouch.AnimationSource.Duration;
crouch.SpeedFactor = 0;
state = "standUp";
}
○「立ち上がり」状態を作成する必要があります。アニメーションの経過時間から更新時間を引いた値が負の数であれば、移行を終了し「立ち」状態に戻ります。もしくはアニメーションの経過時間からゲームの経過時間を引きます。
これは少し注意深くソースコードを記述する必要があります。
// Add this to the UpdateState method
else if (state == "standUp")
{
if (crouch.ElapsedTime - gameTime.ElapsedGameTime.Ticks <= 0)
{
crouch.SpeedFactor = 1;
crouch.ElapsedTime = 0;
idle.ElapsedTime = 0;
state = "idle";
}
else
crouch.ElapsedTime -= gameTime.ElapsedGameTime.Ticks;
RunController(dwarfAnimator, crouch);
}
最終更新:2009年06月21日 12:50