gpt4 book ai didi

Java游戏开发。使瓦片 map 更快。优化建议

转载 作者:行者123 更新时间:2023-11-30 04:46:16 25 4
gpt4 key购买 nike

我正在尝试制作一个需要根据事件工作的全自动游戏引擎。我面临的问题是我创建了一个 map 类并在游戏类中对其进行了初始化。它几乎是静态的,一场游戏只存在一张 map 。通过清除当前 map 中的对象并添加新 map 来加载新 map 。您可以在此处查看 map 类的源代码。

http://code.google.com/p/game-engine-for-java/source/browse/src/com/gej/map/Map.java

主要问题出在碰撞检测上,我在不应该使用的地方使用了暴力碰撞检测。这会大大减慢游戏速度,我只想检查距离该物体较近的物体的碰撞。我一直在使用 MapLoader 接口(interface)来构建 map 。我认为在另一个线程中调用对象的碰撞()方法可能会有所帮助。然而,所有 map 对象都在 Game 类中更新。

这是游戏类,如果它可能有帮助

http://code.google.com/p/game-engine-for-java/source/browse/src/com/gej/core/Game.java

还有一个问题,有时对象不会被销毁。我正在调用 map 的removeObject() 方法,但它需要 1 秒的延迟,有时根本不会删除。

在游戏中有 158 个对象的平台游戏中,它为我提供了 48-64 fps。但在太空侵略者风格的游戏中,它只能给我 20-30 fps。非常感谢任何有关优化的建议...

如果有人能给我一份有关二进制间距等的教程,我将不胜感激。

最佳答案

通过查看代码有两个建议:首先,您应该尝试最小化碰撞检测中的对象分配,不要创建新的矩形,通过直接写入来处理已有的数据碰撞检测算法。

第二个更重要的事情:碰撞检测引擎应该通过使用两个级别来工作:

  • 粗略的碰撞级别已经排除了那些肯定太远而无法碰撞的对象(您可以在此处使用许多技术,例如 binary spatial partition 大碰撞 Blob 算法或对象的层次结构)
  • 精细级别,将使用更精确的算法计算可能发生的碰撞的具体细节

关于Java游戏开发。使瓦片 map 更快。优化建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10890523/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com