ボム弾数不具合

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

ボム弾数不具合

#1

投稿記事 by 名無し » 15年前

龍神ベースのプログラムで、
structファイルで int bom;
iniファイルでch.bom = 3
と定義し
effectファイルで

コード:

//ボム計算
void bom_calc(){
    int n,k,shot_angle[4]={PI,-PI,PI*2,-(PI*2)};
    if((ch.flag==0||ch.flag==1) && bom.flag==0){
		if(CheckStatePad(configpad.bom)==1){
			if(ch.bom>0){
            enter_bom();
			}
        }
    }
    if(bom.flag==1){
		ch.bom--;
以下略
としたのですが。(エラーなし)

ボムが一発しか撃つことができません。
どうすれば直るでしょうか?

アバター
bitter_fox
記事: 607
登録日時: 15年前
住所: 大阪府

Re: ボム弾数不具合

#2

投稿記事 by bitter_fox » 15年前

bom.flagってちゃんと下げてますか??

あと、フォーラムルールには、
フォーラムルール さんが書きました: 時々「あああ」とか「あいうえお」などという名前で投稿される方がいますが、

ふざけているように捉えられる場合が多く、熱心に回答してあげようという気を殺いでしまいます。

また、「初心者です」「初心者」「初めまして」「名無し」のような

その場だけの名前、また、多くの人が重複して使うであろう名前は避けてください。

なるべくオリジナルな名前を決め、以後同じ名前を使い続けてください。
とありますので、これに従っていただけますでしょうか??
http://dixq.net/board/board.html#k2

jay
記事: 314
登録日時: 15年前
住所: 大阪市
連絡を取る:

Re: ボム弾数不具合

#3

投稿記事 by jay » 15年前

詳細なプログラムソースを読んでいないので推測でしか答えられませんが

if(bom.flag==1){
ch.bom--;

ここが原因ではないでしょうか?
この場合bom.flagが1であり続ける場合、毎回ch.bomの値が減算されてしまいます

結果的に一度目のボムの処理が終わるころにはch.bomの値がマイナスになってしまい
if(ch.bom>0)の条件を満たすことが出来なくなっていると思われます。

ch.bomの値を減算するタイミングを適正なものに変えれば上手く処理できると思いますよ。
♪僕たちは まだ森の中 抜け出そう 陽のあたる場所へ

閉鎖

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