iモード携帯電話用Java(iアプリ) Part 6
■ このスレッドは過去ログ倉庫に格納されています
0162デフォルトの名無しさん
NGNG1.当たり判定で座標計算そのものを間違えている
2.キャラの移動と当たり判定の処理順がおかしい
1.のパターン
キャラAがキャラBの手前から向こうへ移動しようとするとき、
移動量がキャラBの大きさより大きくて、キャラAがキャラBと
重なることなく向こう側へ行ってしまった場合。
このように移動量が対象物体より大きくなる可能性がある場合は、
単純に移動後のキャラAとキャラBの座標を比較するのではなく、
キャラAの移動前後の座標とキャラBの座標をそれぞれ比較して
当たったかどうか(追い抜いたかどうか)を判定する。
2.のパターン
キャラAの移動→キャラBの移動→当たり判定の順だとすっぽ抜ける。
キャラAの移動→当たり判定→キャラBの移動、の順にして、
キャラAを移動させてキャラB(移動前)と当たっていればキャラBの
移動処理を行わないようにする。
キャラA、キャラBがそれぞれ複数ある場合(シューティングの自弾と敵機)、
ともに当たり判定のフラグを持っているとその後の処理がやりやすくなる。
自弾(キャラA)を移動して、当たり判定をして、当たった自弾と敵機(キャラB)
双方の当たりフラグを立てる。
キャラの生死や描画/消去はこのフラグを見ればいい。
実際にはソースを見ないと何とも言えないけど(ぶっちゃけ見る気はないけど)。
まさか2つの領域(四角形領域)の重なりを判定する式自体を間違えているとかは勘弁な。
■ このスレッドは過去ログ倉庫に格納されています