プレイ日記
みどりむし shiyon_29
なんで途中で星が一つだけ離れてしまうのかな? 公開キー【D23K3PD】k0001
1そうだね
プレイ済み
返信[1]
親投稿
MIKI ifconfig
プレイしたけど☆出ませんでした!!
0そうだね
プレイ済み
返信[2]
親投稿
ケイン KEIN.HORGAN
デバッグの為にコードをいじってしまったので、ちょっと行はずれてるかもしれませんが、原因は、 86行目からの星弾描画処理にあります。 FOR 文の終了条件を、配列の要素数 -1 にしているのと、FOR 文の最中で配列を削除してしまっているのが原因です。 1.FOR 文は、毎回終了条件式を計算しなおす。 終了条件に配列の要素数を指定している場合、FOR 文中で配列の要素数を変更すると、ループ数がおかしくなる
0そうだね
プレイ済み
返信[3]
親投稿
ケイン KEIN.HORGAN
2.配列を先頭から削除した場合、処理が飛び飛びになる。 つまり、1発目の弾を削除した場合、元の2発目が1発目の位置に、3発目が2発目の位置にくる。 しかし、次のループでは、I=1、つまり2発目の位置にある弾を処理する事になるので、3発目を処理してしまう。 にも関わらず、弾配列の先頭を削除する = 処理していない2発目の弾を削除してしまう。 多分、弾表示ループの外に弾削除処理をいれれば大丈夫だとは思いますが……
0そうだね
プレイ済み
返信[4]
親投稿
ケイン KEIN.HORGAN
なお、今回実際に発生している問題は、最初の弾が消える前に2波目の弾を撃った場合です。 弾が20発存在している場合、 最初に処理されるのは、1,3,5,7,9,11~20 発目です。 1~5発目が削除されます 次のフレームでは、弾配列に6~20 発目のデータが入っています。 処理されるのは6,8,10,11~20発目。 6,7,8が削除されます 次のフレームで、9,11~20 発目が処理され、9発目が削除されます
0そうだね
プレイ済み
返信[5]
親投稿
ケイン KEIN.HORGAN
次のフレームで、10,12~20発目が処理され、10発目が削除されるわけですが、ここで 「あ、11発目が処理されない」 となるわけです。 次のフレームからは、第2波目しか表示されなく、配列も削除されないので、問題なく、 「11~20発目が表示」 されるわけですが、直前のフレームで11発目が処理されていないため、11発目だけが1フレーム分遅れて表示されるわけです。
0そうだね
プレイ済み
返信[6]
親投稿
MIKI ifconfig
ケインさんすごい!!!
0そうだね
プレイ済み
返信[7]
親投稿
説明スゲー
0そうだね
プレイ済み
返信[8]
親投稿
†-zero-† RAIOH.GAME
みどりむしのぼうけんの公開いつですか? 8月の最後あたりには公開すると言っていたのに
0そうだね
プレイ済み
返信[9]
親投稿
みどりむし shiyon_29
遅れました! ケインさん、興味深い解説ありがとうございます! みどりむしのぼうけんの公開は9月末に延長しました!ごめんなさい!
0そうだね
プレイ済み
返信[10]
親投稿
みどりむし shiyon_29
操作方法(今頃) スライドパッドで移動 タッチでショット
0そうだね
プレイ済み