gpt4 book ai didi

java - 如何结合 artemis-odb + Glenn Fiedler 游戏循环

转载 作者:行者123 更新时间:2023-12-01 01:22:41 25 4
gpt4 key购买 nike

我想在我的游戏中使用 artemis ( https://github.com/junkdog/artemis-odb)。

最近我读到了 Glenn Fiedler 的游戏循环: http://gafferongames.com/game-physics/fix-your-timestep/

所以提到的游戏循环有两个部分,其中 artemis world.process();会发生。集成部分和渲染部分。

关于我如何使用 artemis 完成这样的事情的任何想法。

while(!quit) {
.....
while (accumulator >= dt) {
world.process("only EntitySystems of group1 or with Components X (INTEGRATE STUFF)");
....
}
....
world.process("only EntitySystems of group2 or with Components Y (RENDER STUFF)");
}

artemis 支持这种游戏循环吗?

我现在想到的唯一解决方案是:

设置一个全局静态标志,指示其是集成进程还是渲染进程,然后在设置错误标志时退出所有 EntitySystem.process(Entity e) 方法。像这样:

@Override
protected void process(Entity e) {
if(GLOBAL.RENDER_TIME) {
return; // exit cause, this entity should only be processed when it is INTEGRATE TIME
}
}

问题是对很多实体进行了迭代,这些实体并不需要,因为这些实体不处理任何东西。

我曾考虑拥有 2 个 Worlds,但我认为我无法在 Worlds 之间轻松共享相同的组件实例,尤其是当它们是池化对象时。

知道如何结合 artemis-odb + Glenn Fiedler 游戏循环吗?

编辑:刚刚发现我可以使用 setEnabled() 来禁用和启用 EntitySystems。现在就这样做。

最佳答案

关于java - 如何结合 artemis-odb + Glenn Fiedler 游戏循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33169250/

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