我正在按照教程(这是我的第一个游戏)用 Java编写炸弹人。本教程建议使用以下代码来检测碰撞。
for (int p=0; p<entities.size(); p++) {
for (int s=p+1; s<entities.size(); s++) {
Entity me = (Entity) entities.get(p);
Entity him = (Entity) entities.get(s);
if (me.collidesWith(him)) {
me.collidedWith(him);
him.collidedWith(me);
}
}
到目前为止,entities是一个包含敌人和玩家的数组列表。由于我还想检测玩家与墙壁的碰撞,我是否应该将关卡中的每一面墙或砖块放入实体数组列表中?如果是这样,这个算法是不是非常低效?这些图块不会与其他图块发生冲突,因此我正在考虑管理不同列表中的游戏实体。你有什么建议?有没有更有效的算法来做到这一点?
注意:我已经阅读了与 2D 游戏中的碰撞相关的其他问题。非常感谢。