2012-01-06 55 views
4

问候大家! 我正尝试从C#XNA 4.0转换为Java中的Java Android dev。首先,我必须说,微软在他们的移动平台上做了很棒的游戏开发工作。令人遗憾的是,全球约有20人拥有Win Mob 7手机...... *
在XNA中开发真的很容易理解,一切都为您完成。 但我想让我的应用程序给人,而不仅仅是给比尔的朋友或谁拥有那些少数WM手机...安卓绘图方法运行缓慢

而这里来了......我不能画一个!以令人满意的速度的位图。 我通过这本书去:

(www.apress.com/9781430230427)开始的Android游戏马里奥Zechner

所以我认为这不会致使是坏的 - 实际绘制。但是,... 我尝试了不同风格的绘图...从书中提供一个(呈现Screen类到RenderView),然后从本教程的方法http://www.edu4java.com/androidgame/androidgame3.html,然后最简单的 http://mikeyhogarth.wordpress.com/2010/10/09/how-to-develop-pong-for-android/乒乓与原语。

我不明白,为什么即使绘制原始图像和移动3个原始对象也可能会这么慢。

我试着移动1!位图(来自edu4java教程)和它不能不断移动。 即使我使用sleep()方法暂停Thread并重新引导10(或20(或30))FPS,它仍然很糟糕。 (Wildfire S)

好吧,好吧,Wildfire S不是有史以来最快的Android,而是绘制一个!位图不能是那个硬核。

而且我知道我必须有用于拉伸的新主题,我必须通过SurfaceView做到这一点,画到画布等

我couldn't发现周围的interwebs任何会帮助我。 我希望它可以是有史以来最简单的答案,我会看起来像互联网历史上的gratest noob,但我会忍受它...

是否有enybody谁知道怎么做得更好?

(我不使用OpenGL EP因为我感兴趣的只是简单的2D游戏(还))

谢谢你甚至阅读。

埃尔汗

+1

您需要提供更多具体信息以知道您出错的位置。即使是最慢的Android手机,也可以画出大于30fps的位图。你是否将位图的位深度与显示的位深相匹配?你是否要求系统将其完全不透明?您是否将位图数据保存在位图对象中,而不是从资源中反复读取它?提供一些细节,然后“我们”可以回答你的问题。 – BitBank 2012-02-01 18:40:36

+0

请发布代码片段,以便我们找出错误的地方。 – 2012-03-07 13:37:41

回答

3

这可能有助于与性能:如果你是在一个高级别API构建,你应该能够您的清单内没有开启硬件加速。它使用简单,应该让事情更顺畅。诀窍是在需要时启用它,并在没有任何密集事件发生时将其禁用。 http://android-developers.blogspot.com/2011/03/android-30-hardware-acceleration.html

+0

要进行更多控制,请在用户与某物(如触摸屏幕)交互时将其打开,然后在抬起手指时将其停用。这可以通过在代码中关闭和打开来实现,而不是在清单中不断运行。 – SpicyWeenie 2012-03-09 01:40:50