- 207: 名前:枯れた名無しの水平思考 :2010/11/02(火) 04:04:53 ID:6fQBYI90O(2)
- 昼間に前スレでカウンタ、定期ミサイルについて質問した者です。 いろいろやって見た結果、なんとなく理解できました。
まず
A=B−AではなくA=A−Bでした。すみません。
で、例えばAが5秒経ったら(5秒間隔で)ミサイル発射させたい場合。
極端な話Bはいらないですね。 いらない=ない、ないってことは0だからAが5秒経てば5−0=5で発射する。
でもこれだとずっと5以上の状態なので常にミサイルを発射し続けてしまう。 だからここでリセットする必要がある。
そう、Bはリセットするために必要だったんですね。 ミサイル発射後にBに時間をカウントさせる。例えばその時の経過時間を10秒とする。
元に戻ってAも経過時間を再開。
11秒経ったとして、11−10=1。5以下なのでミサイルは発射しない。
Bはミサイル発射後にしかカウントしないので、ミサイルが発射しないこの場合Bの10はそのまま。
そしてグルグル回ってAが15秒経ったら5以上となりミサイル発射。 そしてBは発射後に再びカウント。それが16秒だったらAが21になるまでミサイル発射しない。
それを繰り返せば5秒間隔でミサイルを発射することができる。
この解釈で大丈夫でしょうか。- 209: 名前:枯れた名無しの水平思考 :2010/11/02(火) 04:12:08 ID:+NKAWD2N0(2)
- >>207
それでおk
A=B-Aにする場合はBに発射した時の戦闘時間入れてB=B+5とか計算してあげればよい
こっちだと開幕からミサイル撃つね
あ、よく考えると-じゃなくて比較だからA=B-Aはどっちにしろ違うのか
AがB以上だとミサイルで、撃ったらBに戦闘時間+5とかで - 210: 名前:枯れた名無しの水平思考 :2010/11/02(火) 04:23:19 ID:rDTMFiPE0(8)
- >>207
くどくてわかりにくくて読む気が失せる
要するに、
・常に(というか、それにかなり近い間隔で)現在時刻を記録し続けるカウンタAを用意
・ミサイル撃った直後だけ時間を記録するカウンタBを用意
・カウンタB-A>指定秒数の条件分岐後に、ミサイル発射の命令
単純なことだよ
カウンタAは常に更新し続けるのに対し、Bはミサイル撃った時しか変わらないから、
B-Aの値は、Aが更新されるたびに増加していく - 212: 名前:枯れた名無しの水平思考 :2010/11/02(火) 04:49:55 ID:vvjtRHVn0(7)
- >>207
合ってる。が、足し算方式のが無駄が無く、処理速く出来るから作ってみ
くどくてわかりにくいのは引き算方式だからだw
- 219: 名前:枯れた名無しの水平思考 :2010/11/02(火) 06:04:13 ID:40jv9BrE0(2)
- >>212
足し算方式ってどんなの?- 220: 名前:枯れた名無しの水平思考 :2010/11/02(火) 06:21:07 ID:vvjtRHVn0(7)
- >>213
一定角度で侵入してくる弾は全部高速飛翔体として処理されるからな・・・
自機を狙った、あるいは自機に必ず当たる弾の検出は無理。
条件により回避しない、高速飛翔体の検出範囲を狭めるくらいしか出来ない
>>216
時間分岐はなにかと便利
>>219
A(現在時間)がB以上なら余分な時間をBに足しましょうって感じ
- 230: 名前:枯れた名無しの水平思考 :2010/11/02(火) 07:45:45 ID:6fQBYI90O(2)
- >>223>>225>>228
スマン、とっつきにくい話になったのは>>207のせいだ・・・。
でも前スレ見てもらえば分かると思うが(昨日昼くらいのカウンタの質問から)、カルポWikiの「定期ミサイル」ってのを見て思った疑問を、俺みたいな初心者にみんなが丁寧に教えてくれてるんだ。
どうしてこの順番なのかとか、どうしてこういう式になるのかっていう本当、初歩的な質問
で、理解したことを確認したら「こういうのもあるよ」って教えてくれてるだけだから、俺が言うのも何だが、分からないことがあったらとりあえず聞いていいと思う。
とはいえ前スレの話を引きずってスマンかった。
■TOP■ 全部 1- 101- 201- 301- 401- 501- 601- 701- 801- 901- ツリー解除 dat