ドワーフが「立ち」状態のとき、かがませられるようにします。「かがむ」状態のアニメーションは2つの部分に分けられます。「立ち」状態から「かがむ」状態への座標変換、そして「かがむ」状態のアニメーションの繰り返しです。
○「立ち」状態で、「Spaceキー」を押下された場合、「かがむ」状態のアニメーションの経過時間に 0 を設定します。繰り返しをしないようにし、 AnimationEnded を登録します。このイベントはアニメーションが繰り返さないように設定されたときだけ実行されます。「+=」演算子と「Tabキー」を2回押すことでイベントを登録できます。
// Add this in the if (state=="idle") block of the UpdateState method
if (keyState.IsKeyDown(Keys.Space))
{
crouch.ElapsedTime = 0;
crouch.IsLooping = false;
crouch.AnimationEnded += new AnimationEventHandler(crouch_AnimationEnded);
state = "crouchDown";
}
○VisualStudio のオートコンプリート機能によって作成された crouch_AnimationEnded メソッドまで下へスクロールして下さい。これはアニメーションが終了したときに実行されます。実行されたとき、「かがみ中」状態にし、イベントを外します。
// Add this in the crouch_AnimationEnded method
state = "stayCrouched";
crouch.AnimationEnded -= crouch_AnimationEnded;
○「かがむ」状態と「かがみ中」状態を追加し、ボーンのアニメーションに設定して下さい。
// Add this in the UpdateState method
else if (state == "crouchDown")
{
RunController(dwarfAnimator, crouch);
}
else if (state == "stayCrouched")
{
RunController(dwarfAnimator, stayCrouched);
}
○ここでのポイントは、ドワーフに立ち上がらせる必要があるが、ドワーフは「立ち上がる」状態のアニメーションを持っていないことです。「かがむ」状態から「立ち」状態に戻す、もしくは「かがむ」状態と「立ち」状態の間を混ぜるように「立ち上がる」状態を作成できます。または、「かがむ」状態のアニメーションを逆再生し、戻すことができます。最後のオプションは次のチュートリアルのセクションでカバーします。
最終更新:2009年06月21日 12:49