一定時間文字を表示

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

一定時間文字を表示

#1

投稿記事 by ヨシタケ » 13年前

スタート時に「START」、クリア時に「CLEAR」といった感じに文字を表示させようとしています。
しかし、なぜかスタート時に「CLEAR」の文字が表示されタイトルに戻ってしまいます。
クリアの条件はint blocknumberという変数を用意し、ブロックをひとつ消すごとに+1されるようにしてあります。
ブロックの数が18なので18個消した時点でclearflug = 1となるようにしてあります。
文字の表示は

コード:

void graph_start(){


	if(clearflug = 0){
		s_cnt++;
		if(s_cnt <180){
			DrawRotaGraphF(120,180,1.0f,0.0f,img_font[0],TRUE);
		}else{
			s_cnt = 0;
		}
	}
	if(clearflug = 1){
		e_cnt++;
		if(e_cnt <180){
			DrawRotaGraphF(120,180,1.0f,0.0f,img_font[1],TRUE);
		}else{
			func_state = STATE_TITLE;   //タイトルに戻る
			e_cnt = 0;
		}
	}

}
というようにしてあります。また、ちゃんと初期化のための関数でclearflug を0にしているため原因がさっぱりわかりません。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: 一定時間文字を表示

#2

投稿記事 by softya(ソフト屋) » 13年前

ここと
if(clearflug = 0){
ここが
if(clearflug = 1){
代入文になっています。
条件なら==です。Cを含めif文中に代入文が書ける言語では注意してくださいね。
プロでも間違う時のあるバグです。

デバッガを使うと間違いが検証できますよ。

[補足]
誤字ですがflug → flagだと思います。
あとflagは0/1の場合だけにしてCounterとかを使って方が良いと思います。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

ヨシタケ

Re: 一定時間文字を表示

#3

投稿記事 by ヨシタケ » 13年前

ありがとうございます。全然気づきませんでした。

閉鎖

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