人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

MFCでBMPから抜き出したキャラクター画像をアニメーションさせるにはどのようにしたらいいのでしょうか?

今のところ、OnTimerしか見当がついていませんが、よくわかっていません。他にも方法があったら教えていただきたいです。

よろしくお願いします。

環境.NET2003 VC++ Windows2000

●質問者: champclair
●カテゴリ:コンピュータ 学習・教育
✍キーワード:.NET BMP mfc VC++ Windows2000
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● kazu1107
●60ポイント

タイマーについては以下ページにて使い方が説明されています。

http://www.hi-ho.ne.jp/hawk/mfc0401.html#timer


基本的にはウィンドウプロシージャ内でタイマーが投げるメッセージを受けとり、パラパラアニメのように描画すればアニメーションに見えます。


ただ、基本的に再描画はWM_PAINTが呼ばれたとき行うべきです。

これを実現する方法としては描画用のバッファ内にビットマップを書き込み、OnPaint()内で描画用バッファを実際にウィンドウに書き出すという方法か、表示領域を決める処理をOnPaint()内で行うのが一般的。

ゲームではちらつきを押さえるため前者が一般的ですが、ビットマップ1枚ならちらつきは出ないはずなので、座標計算のみタイマ内で行い、表示の時にその座標を使うというのがベストかと(WM_PAINTは他からも呼ばれる可能性があるから)


どちらにしてもOnPaint()内で描画を行うならタイマに制御が来たとき、座標計算やバックバッファへの書き込みをしてから、CWnd::InvalidateRect()を呼んでWM_PAINTが呼ばれるタイミングを作る必要があります。


他にも方法があったら・・・とのことですので一応書いておくと、ゲームだとメッセージループで処理してる事が多いです。

これはスピードを取るためで、この方法を使うアプリケーションはCPU使用率がかなり高めになります。

あまり高速な処理を求めないなら出来るだけタイマによる処理を選ぶべきです。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ