java - andengine 塔防游戏 - 敌人<-武器交互

标签 java android andengine

从性能角度来看,什么是最正确的 - 敌人和武器之间的交互算法(这里的子弹可能更正确)?

每个 Sprite 的每一个子弹都应该通过“collidesWith”方法检查碰撞情况,并在完整的敌人列表上进行迭代吗? 或者子弹应该知道最近的敌人并只检查他们?

如何使用 TMXMaps 实现它?也许我需要动态地将某种信息设置到 TMXMap Tile 属性中并对其进行操作?

此类游戏有哪些最佳实践? IShape.collidesWith 是 Bullet->Enemy 交互的正确选择吗?

最佳答案

解决这个问题的最佳方法是使用Physics Box2D 扩展。它将为您处理碰撞。使用固定步物理引擎来提高性能。

  1. 您可以将自己的属性添加到 TMX map 中 - 每个对象、组等。我建议为敌人的对象创建一个属性,因为我相信它们会出现在您的 TMX map 中。在您的代码中,将物理引擎主体附加到具有该属性的每个对象。看这个例子: http://www.andengine.org/forums/tutorials/collision-objects-from-tmx-map-t3907.html

  2. 当你发射子弹时,也会在上面附加一个 body 。让它成为一个传感器,这样它就不会被其他物体反弹(除非你想要它)。让 Box2D 处理碰撞,您负责处理后果!示例:http://www.andengine.org/forums/gles2/collision-events-t7140.html#p31300

查看 AndEngine 示例,您想要的大部分内容已经存在: https://github.com/nicolasgramlich/AndEngineExamples/tree/GLES2/src/org/andengine/examples

关于java - andengine 塔防游戏 - 敌人<-武器交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16598466/

相关文章:

java - netbeans 如何停止运行?

java - 如何跟踪 Android 中 RecyclerView 中的选定项目?

Android应用程序如何作为系统应用程序运行?

android - 电源按钮中断时无法暂停声音

java - 从 jdk1.7.0_25 迁移到 jdk1.7.0_40 时的性能回归

gRPC/protobuf( Protocol Buffer )的 Java IDL

java - Android Studio (Intellij) 编译错误

android - AndEngine 自定义 Sprite

java - 我需要帮助暂停和恢复游戏

android - Android 应用签名是什么意思?