Project Board コメントComment
ログイン | ヘルプ | トップ

プロジェクト
親コメント:
[Ver0.01]とりあえず作成。 ス... 2011-09-21 17:06 by おへっほー

シューティングバスティングXP

内容
Commented by: 雲ぷりん at 2011-09-21 21:51:05

プレイしてみました。

それぞれの敵に個性的な動きが合って、面白いと思いました。
赤の敵はもうちょっとゆっくり動いてほしいなと・・・
あと、前に来てほしい><


そして、1番伝えるべき事があります。
非常に重いのは致命的なバグです。
直しましょう。

原因として、当たり判定の中で

※1個当たり全オブジェクトのループを行う処理
for (t in $chars) {
  //省略
for (t in $chars) {
   //省略
}
}
という処理が入っている事です。
もし、正すのならば
※全オブジェクト*2のループを行う処理
for (t in $chars) {
  //省略
}
for (t in $chars) {
   //省略
}
という風に分けるべきです。
これにより、処理は比較的快適なものとなります。

1体あたりのループする回数を減らす事で処理を軽くします。
オブジェクト数が40個の時は
前者は敵1体につき1600回の処理
自機を除けばそれが39個あるのでとんでもない回数の処理です。

しかし、上記の修正で

オブジェクト数が40個の時は
前者は敵1体につき80回の処理
単純計算でみると20倍近く処理が軽くなっています。

あと、インデントをつけることで
この手の2重ループになってしまう危険性を回避する確率が上昇しますので、
なるべくインデントをつけましょう。
せっかくのプログラムが台無しになってしまいます。


もし分かりづらい説明がありましたらすみません。


添付ファイルは
当たり判定の処理を整理した場合です。
まんま回答ですけど、コピペする場合は理解した上でコピペしてください。

添付ファイルをダウンロード

返信