gpt4 book ai didi

android - 使用 OpengL Surface 为 Android 制作游戏循环的最佳方法

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:47:06 29 4
gpt4 key购买 nike

据我所知,如果我想制作一个非 opengl 游戏循环,我可以做的是有一个游戏线程,在循环期间将更新游戏状态(或游戏物理)并通过锁定更新图形来自(普通)SurfaceViewCanvas,通过 Canvas.drawXXX(...) 方法进行绘图,然后解锁它,此时图形会为循环更新.

在使用 GLSurfaceViewRenderer 时,我真的不知道如何做到这一点。据我所知,我不能再像使用常规表面那样按需绘制我的手工 gameThread,它是 Canvas,因为现在有一个渲染线程将调用 Renderer。 onDrawFrame()(关于我传递给 GLSurfaceView 的渲染器类的实现)。

那么我的问题是,使用 GLSurfaceView 和 Renderer 制作游戏循环的好方法是什么?我是否仍应创建单独的游戏线程,但只处理其中的游戏状态(物理)更新,然后在我的 Renderer.onDrawFrame() 实现中使用该游戏状态来根据当前状态实际绘制图形?我应该只使用 Rendere 的线程来进行状态更新吗?

最佳答案

事实证明,最好的方法是使用 GLSurface 提供的线程。它的钩子(Hook)来自渲染器接口(interface)的实现。实际上,渲染器的 onDrawFrame() 方法可以被认为类似于常规线程的 run() 方法。这种方式抛出了每秒固定更新范例的概念(不是真的,但在这种情况下这样做太复杂了)但另一方面你可以获得最佳的图形更新。

这里有一个关于 Android 和 OpenGL 的很棒的教程:

http://insanitydesign.com/wp/projects/nehe-android-ports/

关于android - 使用 OpengL Surface 为 Android 制作游戏循环的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9274972/

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