はじめまして、Lと申します。
今、大学の勉強でC言語でシューティングゲームを作っているのですが、20日にそのゲームを提出しなければいけないのです。
今、製作中なのですが、スコア表示について教えていただきたいです。
スコア表示は文字だけでしたいので、画像は必要ないです。
下記のソースを見てください。
void Score( int x, int y, int color )
{
DrawFormatString( x, y, color ,"Score 0000000", Score );
ScreenFlip();
}
・
・
・
// ループ
while( ProcessMessage() == 0 && CheckHitKey( KEY_INPUT_ESCAPE ) == 0 )
{
// 画面を初期化する
ClearDrawScreen() ;
//スコア表示
Score( 267 , 15 , 0xFFFFFFFF ) ;
・
・
・
となっています。
しかし、この方法だと本来 滑らかに動作するはずが とても重くなりました。
ソースのもっと下の方に"弾が敵に触れると敵破壊"というコードがあり、そこに破壊のついでにスコア加算コードを入れたいのです。
そうすれば、破壊した時にスコアが加算されるので、普通のシューティングと変わりありません。
ですが、その画面にスコア表示させなければいけませんので、上のコードをやってみたのですが重すぎて・・・。
それとも、コード自体 複雑すぎますか? もっと簡単にできる方法はありますか?
他にもいろいろ聞きたいことがあるのですが、スコア表示を先に教えていただきたいので
どうぞ、よろしくお願い致します。
使用:Visual C++ 2005 Express Editiom
スコア
Re:スコア
void Score( int x, int y, int color ) { DrawFormatString( x, y, color ,"Score 0000000", Score ); // ここに書いてはいけない //ScreenFlip(); } // ループ while( ProcessMessage() == 0 && CheckHitKey( KEY_INPUT_ESCAPE ) == 0 ) { // 画面を初期化する ClearDrawScreen() ; //スコア表示 Score( 267 , 15 , 0xFFFFFFFF ) ; // 各描画処理 ・・・ // ループ内の描画処理の最後にScreenFlip関数を呼ぶ // ココ以外でScreenFlip関数を呼ぶべきではない ScreenFlip(); // フレームレートを一定にする処理 ・・・ }