プロが教えるわが家の防犯対策術!

DXライブラリとC/C++で2Dゲーム作成しています。
ジャンルはベルトスクロールアクションで
結構キャラやアイテムのアクションを多く含む予定です。

現在RECTによる画像ファイルから
矩形範囲で画像切り出しをし複数の画像をアニメーションしています
アニメーションをする際、
現在の経過秒数から、
int アニメパターン番号 = (int)(経過秒数/(1000/fps)) % allframe;
のように表示すべきコマ数を求めています。
ネットで検索すると上記のような方法はみかけるのですが。

RPG等コマごとに一定の間隔でアニメするものに関しては
これでも良いのですが
今回はいわゆる格闘ゲームの様に1コマ1コマ毎に
表示するフレーム数をしていしたいと考えています。

1コマ目=2フレーム
2コマ目=14フレーム
3コマ目=6フレーム
・・・etc

この手の方法を、実現する為に自分でも色々案はあるのですが
やはり他の人はどのように処理しているのか
より良い実装をする際、こうしたらよいというようなものを
開設しているサイトなどあれば教えてください。

そもそもこういった処理の事を何というのでしょう?
検索のキーワードになるものでもアドバイスいただければ幸いです。
キーフレームアニメーション?なのでしょうか。
どうもそのキーワードでは、あまり目的のサイトが少なく;

昨今3Dの情報が増えてきた為、皮肉ですが
検索しても見つけにくく。
よろしくお願いいたします。

A 回答 (1件)

 こんにちは。



 何かヒントが得られるかもしれません
 「ゲーム アニメーション シーケンス遷移」(検索)
 http://www.google.co.jp/search?hl=ja&q=%E3%82%B2 …

 思いっきり簡単に書くとこんな感じでしょうかねえ・・・。
 予めAnimElemの中に対応したイメージ等を入れておいても良いかもしれません。C++ならばもっと入り組んだやり方が出来ると思います。

//
struct AnimElem
{
int iFrameCount;//待機フレーム数
int iCurrentFrame;//経過フレーム数
};

//
AnimElem arrAnimSeq[] = {{2, 0}, {14, 0}, {6, 0}};
AnimElem* p = &arrAnimSeq[iCurrentSeq];

//iCurrentSeqを使って対応したイメージを描写

if(++p->iCurrentFrame >= p->iFrameCount)
{
p->iCurrentFrame = 0;
++iCurrentSeq;
}

//
    • good
    • 0
この回答へのお礼

なるほど大変参考になります。
また弄りがいが出来、面白みが増えました
どもども、完成後はどこぞで公開してるかも。

お礼日時:2008/12/10 18:40

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!