好的,所以我想用 openGL ES 2.0 制作游戏,但我的控件有问题。到目前为止,我制作的控件就像我游戏中的任何其他精灵一样,只需绘制它,如果相机更新,控件将在它像“移动”相机后更新。
有没有更有效的方法来做到这一点?这是我想做的一个例子:
*游戏画面
*控制
然后就像将控件放在游戏屏幕的顶部,这样即使相机移动它也不会移动。可能吗?也许混合xml?如果是这样,那怎么办?谢谢!
好的,所以我想用 openGL ES 2.0 制作游戏,但我的控件有问题。到目前为止,我制作的控件就像我游戏中的任何其他精灵一样,只需绘制它,如果相机更新,控件将在它像“移动”相机后更新。
有没有更有效的方法来做到这一点?这是我想做的一个例子:
*游戏画面
*控制
然后就像将控件放在游戏屏幕的顶部,这样即使相机移动它也不会移动。可能吗?也许混合xml?如果是这样,那怎么办?谢谢!
当你每一帧都在同一个地方画同样的东西时,感觉就像是无用的工作,但另一方面,屏幕的每个像素可能都会重绘每一帧。大多数游戏都不会竭尽全力避免这种额外的工作。我建议尽量避免绘制不可见像素来提高性能,例如:
将几何图形收缩包裹在 UI 周围,因此您使用 alpha 0 绘制的像素越少越好。这可能涉及绘制更多三角形,但根据我的经验,这种权衡是值得的。
让深度测试为您服务。如果您的 UI 完全不透明,您所要做的就是先绘制它,然后在背景中绘制场景的其余部分,这样如果像素被 UI 遮挡,它们就不会绘制。如果您的 UI 只是部分不透明,您可以尝试将其细分为不透明三角形和半透明三角形,并在最后单独调用中绘制半透明的,以便您可以对不透明的进行深度测试。
我从来没有开发过,OpenGL
但如果你在某个布局内开发它。那么你可以做的是:
将您的游戏布局放在FrameLayout
.
将 a Linearlayout
orRelativeLayout
放在同一个FrameLayout
.
将控件放置在您添加的布局中。
这样您将添加的控件将出现在游戏顶部,您可以使布局半透明以获得更好的用户体验。