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重ループになってしまう危険性を回避する確率が上昇しますので、
なるべくインデントをつけましょう。
せっかくのプログラムが台無しになってしまいます。
もし分かりづらい説明がありましたらすみません。
添付ファイルは
当たり判定の処理を整理した場合です。
まんま回答ですけど、コピペする場合は理解した上でコピペしてください。
添付ファイルをダウンロード
|