スコア

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
L

スコア

#1

投稿記事 by L » 17年前

はじめまして、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:スコア

#2

投稿記事 by GPGA » 17年前

ScreenFlip関数は無限ループの一番最後に一度だけ呼び出す関数ですが
これを何度も呼んでいませんか?

L

Re:スコア

#3

投稿記事 by L » 17年前

返答ありがとうございます。
この関数は無限ループだったんですか・・・。

もっと、簡単なスコア表示ができる方法はありませんか?

よろしくお願いします。

管理人

Re:スコア

#4

投稿記事 by 管理人 » 17年前

時間が今ないので、あまり詳しくいえませんが・・
関数が無限ループなんじゃなくて、終了処理をするまで

while( ProcessMessage() == 0 && CheckHitKey( KEY_INPUT_ESCAPE ) == 0 )

ここで無限ループしていますよね。このループの一番最後にだけ書くものです。

L

Re:スコア

#5

投稿記事 by L » 17年前

ループのところに関数を入れていたのですね・・・(汗


今すぐは言いませんが、簡単な記述があるのならばよろしくお願いします。
できれば、提出期間20日前、18日や19日までにはお願いします。

GPGA

Re:スコア

#6

投稿記事 by GPGA » 17年前

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();

    // フレームレートを一定にする処理
    ・・・
}

L

Re:スコア

#7

投稿記事 by L » 17年前

よく、分かりません。
できれば、修正していただけませんか?

初心ですが、よろしくお願いします。

閉鎖

“C言語何でも質問掲示板” へ戻る