弾幕それぞれの残り時間

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

弾幕それぞれの残り時間

#1

投稿記事 by ちょいや » 11年前

龍神録プログラミングの館のコードを改造しているのですが、弾幕が自爆する(?)時間はendtimeで決めてるんですよね?
それを弾幕ごとに時間を決めるにはどうすればよいですか?
endtimeを見ると99*60って書いてあってこれは「99秒で次弾幕へ」ってことですよね?
ここを改造すればいいと思ってjikanという変数を用意し、
static int jikan;
if(boss.knd==0)//最初の弾幕の残り時間は
jikan=10;//10秒
else if(boss.knd==1)//次の弾幕の残り時間は
jikan=1;//1秒

boss.endtime=jikan*60

と改造したところ最初の弾幕(boss.knd==0)と次の弾幕(boss.knd==1)の自爆する時間は同じでした(たぶん)。
jikanでendtimeを変更することは成功したみたいですが、jikanの値は変わってないようです。
どう改造したらうまくいくですか?

超絶右留斗羅天才プログラマー
記事: 44
登録日時: 11年前

Re: 弾幕それぞれの残り時間

#2

投稿記事 by 超絶右留斗羅天才プログラマー » 11年前

うーん、確かにその部分だけ見ると正しい気がしますね。

別の所に原因があるように思います。

boss.kndが0と1以外の値になるような場所があったり、
載せてくれたプログラムが実は実行後一回しか通らないような場所であるがために、
正しく動かない可能性があります。

何か心当たりがあれば是非その部分のプログラムも載せていただけると嬉しいです(*´∀`)
ただの超絶右留斗羅天才プログラマーです。同人ゲーム制作進捗度:7%

アバター
Dixq (管理人)
管理人
記事: 1661
登録日時: 13年前
住所: 北海道札幌市
連絡を取る:

Re: 弾幕それぞれの残り時間

#3

投稿記事 by Dixq (管理人) » 11年前

boss_shot_bulletH001()
等の弾幕の関数内の先頭で.endtimeをセットしてはいかがですか?(最初の一度しか通らないように注意)

ちょいや

Re: 弾幕それぞれの残り時間

#4

投稿記事 by ちょいや » 11年前

>>載せてくれたプログラムが実は実行後一回しか通らないような場所であるがために、
>>正しく動かない可能性があります。

ありがとうございました。
おそらくこれが原因でした。boss_shot_main()に弾幕が登録されるたびにi++してif(i==0){略 として解決できました。
しかし、これだと弾幕が増えるたびにコードが長くなることに…

>>boss_shot_bulletH001()
>>等の弾幕の関数内の先頭で.endtimeをセットしてはいかがですか?(最初の一度しか通らないように注意)

龍神録プログラミングの館のコードを改造しているだけでC++は理解できてないので実装方法の検討つきませんが、頑張ってみます。
ありがとうございました。

閉鎖

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