1.
游戏中的时间:
有没有办法使用其他System.Currentmillis() – starttime> XX来更新游戏中的任何内容?它安全还是cpu昂贵?
2.
在我的游戏中我有20个项目(移动方形顶点),当它达到60-70顶点时,FPS从60 FPS下降到30-40 FPS. (在galaxy S i9000手机上测试).
有没有办法让我的游戏FPS将是30FPS?将我的游戏更新为30 FPS是否有用,或者我不需要处理这个? (因为较低的FPS会有一个滞后 – 它会很慢)
我如何能够以相同的速度随时运行我的物体?
3.
什么是最好的方法:做phisyx,和onDrawFrame中的所有stupp,或者:启动一个Thread为我做数学的是什么?什么是更快更好?
解决方法:
TIMING in a game: Is there a way to use other then System.Currentmillis()-starttime>XX to update anything in a game? Is it safe or cpu expensive?
您应该使用时间增量系统.有很多关于此的教程.这是一个非常好的教程:deWiTTERS Game Loop.
In my game I have 20 items (moving square vertexes), when it comes up to 60-70 vertex, the FPS drop down to 30-40 FPS, from 60 FPS. (testing on a galaxy S i9000 phone). Is there a way to my game FPS will be 30FPS? Is it good for update my game to 30 FPS, or I dont need to handle this? (because there will be a lagg on lower FPS – it will be slow)
这取决于您使用的方法.如果是3D,则应考虑使用顶点缓冲对象(VBO:s)(如顶点阵列,但在设备的GPU内存中).这是一个巨大的差异,因为cpu不需要每次迭代都将数据从cpu复制到GPU.
如果是2D,你仍然可以使用VBO:s但是如果推荐的设备支持draw_texture.
但是,选项包括:
>顶点阵列(最慢).
>顶点缓冲区对象(3D最快,比2D中的draw_texture慢).
> draw_texture扩展(2D中速度最快,但不渲染3D内容).
您可以支持所有这些方法来涵盖所有AndroID设备,但请记住检查设备的OpenGL驱动程序的扩展名.有些可能支持所有这些,但可能有设备只支持Vertex Arrays和VBO:s(例如).
我已经回答了相关的问题here,但只是为了告诉你;这是Chris Pruett在Google I / O上的一个讲座:
How I can do to my objects run on the same speed, at any time?
你不能. AndroID是一个多处理 *** 作系统,你不知道发生了什么(也许另一个服务应用程序正在更新?).您可以做的是使用时间增量系统,就像我上面提到的那样.
what is the best way: do the phisyx, and all the stupp in onDrawFrame, or: start a Thread what is made the mathematics for me? What is faster and better?
建议多线程(两个Thread并行运行).不久,在onDrawFrame中绘制你的绘图内容并更新你自己创建的Thread / Runnable中的东西.
推荐资源:
> Google I/O 2009和Google I/O 2010
> Game Development for Android: A Quick Primer
以上是内存溢出为你收集整理的为android编写实时opengl-es游戏 – 一些问题(优化)全部内容,希望文章能够帮你解决为android编写实时opengl-es游戏 – 一些问题(优化)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)