ランダムなパスでシーン上に単一のスプライトが連続的に生成されるゲームを開発しています。それらにパス修飾子を適用します。シーン上でランダムに移動している間、1つのスプライトが他のスプライトと重なります。この重なりを止めたい。
すぐに、私は2つの解決策を見つけます。(多分)
最初の1つ:この理由は、それらの間の衝突を検出してから、新しいパスを指定すれば解決できると思いました。
2つ目:衝突が発生したときにパスモディファイアを2/3秒間一時停止し、パスモディファイアを再開した後に再び移動した場合(可能ですか?)
今すぐファーストアプローチを試してみました。 問題:Updateハンドラー内で反復するスプライトを一意に識別できません。レイヤーを使ってアタッチしません。
私はそれらを生成してリサイクルするために汎用プールを使用しています。
コード:
public Iterator<EasyEnemy> eIt;
registerUpdateHandler(new IUpdateHandler() {
@Override
public void onUpdate(float pSecondsElapsed) {
try {
// ===get EasyEnemy List from it===
eIt = getEasyEnemyIterator();
while (eIt.hasNext()) {
EasyEnemy ee = eIt.next();
// need some help here
if (ee.collidesWith(ee)) {
// this doesn't work.
}
}
} catch (Exception e) {
}
}
@Override
public void reset() {
}
});
私は自分の問題に集中するように最善を尽くします。誰かがより良い解決策を持っているなら、助けてください私を助けることができます。