我正在开发一个游戏,其中在场景中以随机路径连续生成单个精灵。我对它们应用路径修饰符。在场景中的随机移动期间,一个精灵与另一个精灵重叠。我想停止这种重叠。
瞬间,我找到了两个解决方案。(或许)
第一个:这个原因我认为如果我检测到它们之间的碰撞然后给出一条新路径可能会解决。
第二个:如果我在发生碰撞时暂停路径修改器 2/3 秒,并在恢复路径修改器后再次移动。(有可能吗?)
我现在尝试了第一种方法。 问题:我无法唯一识别精灵以在更新处理程序中进行迭代。我不使用图层来附加。
我使用通用池来生成和回收它们。
代码:
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() {
}
});
我尽量集中我的问题。如果有人有更好的解决方案,请帮助我。