gpt4 book ai didi

opengl-es - 为 OpenGL (ES) 创建可靠的(帧率稳定的)游戏引擎

转载 作者:行者123 更新时间:2023-12-02 07:56:33 25 4
gpt4 key购买 nike

我在为我的 OpenGL 应用程序创建可靠的游戏引擎时遇到了问题。这是一个由多个具有很多 Action 的 Sprite 组成的游戏。

我创建的对象基本上都是我的 Sprite 。另一个名为“gameEngine”的对象每隔一秒(一个计时器)循环执行一组计算,从而产生新的游戏变量。之后, Sprite 对象现在知道它们的绘图数据。

问题是,在收集了我所有的绘图数据后,绘图应该在正确的时间及时发生,从而产生稳定的动画。根据当前场景的复杂性,游戏计算需要花费不确定的时间。因此,实际绘图发生在不同的时间点。我将如何防止这种情况发生?

澄清一下,我的方法是这样的:

// Every something of a second I call tick
-(void)tick
{
drawingData = gameEngine();
draw(drawingData);
}

一定有我不知道的构建此类游戏引擎的最佳实践吗?

最佳答案

游戏循环有很多种,但更好的是将动画与绘图分开,或者在更经典的术语模型和 View 中。基本上,您想要构建一个游戏模型,您可以在其中确定时间的流逝并更新模型(物理帧率),然后在连续的时间点独立渲染模型的快照(渲染帧率)。

这里有几篇文章更详细地解释了游戏循环的一些变体及其优缺点。也有源代码。希望对您有所帮助。

Fix Your Timestep!deWiTTERS Game Loop Article

关于opengl-es - 为 OpenGL (ES) 创建可靠的(帧率稳定的)游戏引擎,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/641108/

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