我正在尝试制作一个需要根据事件工作的全自动游戏引擎。我面临的问题是我制作了一个地图类,并在游戏类中初始化了它。它几乎是静态的,一个游戏只存在一张地图。通过清除当前地图中的对象并添加新地图来加载新地图。您可以在此处查看地图类的来源。
http://code.google.com/p/game-engine-for-java/source/browse/src/com/gej/map/Map.java
主要问题出现在碰撞检测中,我不应该使用暴力碰撞检测。这大大减慢了游戏的速度,我只想检查靠近物体的物体的碰撞。我一直在使用 MapLoader 接口来构建地图。我认为在另一个线程中调用对象的碰撞()方法可能会有所帮助。但是,所有地图对象都在 Game 类中更新。
这是游戏课程,如果它可能有帮助的话
http://code.google.com/p/game-engine-for-java/source/browse/src/com/gej/core/Game.java
还有另一个问题,有时对象没有被销毁。我正在调用地图的 removeObject() 方法,但它需要 1 秒的延迟,有时根本不会删除。
它在一个平台游戏中给我 48-64 fps,游戏中有 158 个对象。但在太空侵略者风格的游戏中,它只给我 20-30 fps。非常感谢任何有关优化的建议...
如果有人能给我一个关于二进制间距等的教程,我将不胜感激。