我正在创建一个简单的Breakout风格游戏,并希望以简单的方式显示分数。
我一直在做一些研究,并找到了几种在OpenGL ES中进行文本处理的方法,但大多数方法看起来相当复杂。
This看起来它可以解决问题,但我无法让它发挥作用。
我已经研究过FTGL和FreeType,但它们看起来很复杂。
我也读过可以在EAGLContext上显示UILabel,但不确定在演出部门中会有多少。
我可能会让这些选项中的任何一个起作用,我只是想知道这种情况的最佳解决方案是什么。
答案 0 :(得分:0)
对于像你所描述的简单用例,即使是模糊的现代硬件(即iPhone 3GS及后来,我认为),在OpenGL ES内容之上分层UIKit / CoreAnimation内容的合成代价可以忽略不计。 (如果您在使用“Color OpenGL ES快速路径蓝色”选项打开的仪器中运行应用程序,则可以看到此信息。)
他们说过早优化是所有邪恶的根源 - 尝试UILabel
非常容易,看看它是否会对您的应用程序的性能产生重大影响,并且只有在第三方库和更复杂的解决方案中才能查看确实如此。
(另外,听起来您可能正在尝试管理自己的CAEAGLLayer
。对于常见用例,使用GLKView
加上GLKViewController
动画要容易得多。)
答案 1 :(得分:-1)
我建议您查看PowerVR SDK的PVRTools框架的Print3D功能。 Print3D可以免费使用,跨平台(iOS,Android,Linux,Windows,OS X等),它可以在OpenGL ES 1.x,2.0& S中高效呈现文本。 3.0应用程序。 SDK包含一个带有源代码的示例应用程序,演示了如何使用Print3D框架(IntroducingPrint3D)。
PowerVR Graphics SDK可以从Imagination的网站免费下载:http://www.imgtec.com/powervr/insider/sdkdownloads/index.asp
可在此处找到SDK中包含的来源概述:http://www.imgtec.com/powervr/insider/sdkdownloads/learn_more.asp