はじめまして、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
スコア
-
GPGA
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();
// フレームレートを一定にする処理
・・・
}