java - LibGDX Ashley 单独渲染和更新

标签 java libgdx entity

我刚刚转而使用 Ashley 来处理实体系统,但是我似乎无法找出分开更新游戏逻辑和渲染的最佳方法。我有一个名为 RenderSystem 的系统,它只是循环遍历具有 RenderComponent、PositionComponent 和 TextureComponent 的所有实体,然后将它们绘制到屏幕上。然而,截至目前,我的更新循环中的引擎正在更新,每秒最多更新 60 次。我想在此更新循环中更新物理、输入和其他游戏逻辑,同时在另一个不受限制的循环中单独进行所有渲染。

在 Ashley 中分离渲染系统和更新系统的最佳实践是什么?

最佳答案

也许您可以利用 Java 的多线程功能并创建多个 Ashley 引擎实例(共享公共(public)实体池)并让它们在单独的线程中运行。不确定如何在两个引擎之间同步数据,但如果您能成功,那么您将拥有可以使用独立帧速率循环其实体的引擎。

关于java - LibGDX Ashley 单独渲染和更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39152356/

相关文章:

java - Artifactory:将 Artifact 从存储库移动到另一个存储库,过滤 Artifact

java - 监控 Java 堆使用情况

ios - 用于 MobiDevelops 的 robovm 分支的 GoogleMobileAds 框架安装

java - 从 mongodb 结果 java 中删除 _id

java - LibgGdx - 在 AssetManager 中加载 TrueTypeFont

android - 用于 libgdx 的用户界面 API

java - JPA 中两个表的 "Object comparisons can only be used with OneToOneMappings"

javascript - 在实体系统中存储组件

ios - 如何在 Coredata 中的相同实体之间创建多个关系?

java - Map.Entry<K,V> 的比较器