アプリ版:「スタンプのみでお礼する」機能のリリースについて

タイトルの通りなのですが現在c言語で簡単なシューティングを作っているのですが、敵を6体表示すると画面全体が激しく点滅を繰り返し(ちらつき?)どうにもなりません。
敵の数を減らす訳にもいかず・・・。どうしたらこの画面がちらつかなくなりますか?

A 回答 (2件)

画面の表示処理が、



1) 画面消去
2) 背景描画
3) キャラクター描画

を繰り返すような方式だと、そういう事があります。
画面消去の状態を表示してしまうのが原因です。


一般的な解決法としては、ダブルバッファリングという手法で、

1) 仮想の画面に背景描画
2) 仮想の画面にキャラクター描画
3) 実際の画面に仮想の画面を貼り付け

なんかの方法で、実際の画面に背景やキャラクターが描画されていない状態を作らないって事で対処します。


それ以前の解決法だと、

1) 画面消去 は、初回の1回のみで、

2) 直前のキャラクターがあれば、その部分を消去
3) キャラクター描画

で、2)3)を繰り返しとか。
キャラクターが重なると、やっぱりちらつきます。
背景があると、キャラクターの消去を背景での塗りつぶしする事になり、ちょっと高度です。

この回答への補足

回答ありがとうございます。
なるほど、ダブルバッファリングですか。それはcでも使えるのでしょうか?
検索してみても他の言語での解説しか出てこないもので

補足日時:2011/02/12 17:20
    • good
    • 0

>なるほど、ダブルバッファリングですか。

それはcでも使えるのでしょうか?
>検索してみても他の言語での解説しか出てこないもので

C言語「だけ」では使えませんね。
もとよりC言語の標準ライブラリにはグラフィックを扱うものがありません。
環境によってはライブラリが用意されていたりしますが。

WindowsならAPIでも解決できる(そして、検索でも見つかる)と思われますが…。
質問者さんの環境が不明ですので。
# VC++とでも書いてあればWindowsであろうことは想定できる…でしょうけど…。
# それでもCUIで作っていたらダブルバッファリングとか無関係ですし。

まぁ、WindowsでGUIと想定して…
http://www13.plala.or.jp/kymats/study/multimedia …
http://relog.xii.jp/archives/2006/06/windows_gdi …
http://blog.goo.ne.jp/masaki_goo_2006/e/d3c18365 …
などなど…。
「Win32 ダブルバッファリング」で検索しただけですが。
    • good
    • 0
この回答へのお礼

ありがとうございます

お礼日時:2011/02/13 00:48

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