5

4 つの画像があり、これらの 4 つの画像を使用してキャラクターをアニメーション化するとします。4 つの画像は、キャラクターが歩いている様子を表しています。キーを押して移動する限りアニメーションを繰り返し、キーを離すとすぐに停止するようにします。あなたがそれを知らないのであれば、SFML 固有である必要はありません。基本的な理論だけが本当に役に立ちます。

ありがとうございました。

4

2 に答える 2

10

単純な種類のステート マシンが必要になる場合があります。キーが押されたとき ( sf::Input の IsKeyDown メソッドを参照)、キャラクターを「アニメート」状態にします。キーが押されていないときは、キャラクターを「アニメーションなし」の状態にします。もちろん、いつでもこの「状態」をスキップして、以下で説明することを行うことができます (正確に何をしているかによって異なります)。

次に、キャラクターが「アニメーション」状態にある場合は、次の「画像」を取得します (詳細については、次の段落を参照してください)。たとえば、単純な 4 要素の配列に画像を格納している場合、次の画像は になります(currentIndex + 1) % ARRAY_SIZE。何をしているかによっては、画像フレームをより洗練されたデータ構造に保存したい場合があります。キャラクターが「アニメーション」状態でない場合は、ここで更新を行いません。

「4 つの画像」が同じ画像ファイル内にある場合、sf::Sprite のSetSubRectメソッドを使用して、表示される画像の部分を変更できます。実際に 4 つの異なる画像がある場合、おそらく sf::Sprite のSetImageメソッドを使用して画像を切り替える必要があります。

于 2010-05-20T00:56:29.313 に答える