【发布时间】:2012-01-06 13:56:47
【问题描述】:
大家好!
我正在尝试从 C# XNA 4.0 转换为 Java 中的 Java Android dev。首先,我不得不说微软在为他们的移动平台开发游戏方面做得非常好。很遗憾,全世界大约有 20 人实际上拥有一部 Win Mob 7.* 手机...
在 XNA 中开发非常容易理解,一切都为您完成。
但我想将我的应用程序提供给人们,而不仅仅是比尔的朋友或拥有那几部 WM 手机的人......
麻烦来了... 我什至不能画一个!位图速度令人满意。 我浏览了这本书:
(www.apress.com/9781430230427) Mario Zechner 的 Android 游戏入门
所以我认为它不会那么糟糕 - 实际绘图。但, ... 我尝试了不同风格的绘图...一种来自书中(将 Screen 类呈现给 RenderView),然后是本教程中的方法http://www.edu4java.com/androidgame/androidgame3.html,然后是最简单的 http://mikeyhogarth.wordpress.com/2010/10/09/how-to-develop-pong-for-android/ pong 与原语。
我无法理解,为什么即使是绘制图元和移动 3 个图元对象也会如此缓慢。
我试图移动 1!位图(来自 edu4java 教程)和 它不能不断移动。 即使我应用了 sleep() 方法来暂停线程并以 10(或 20(或 30)) FPS 重新渲染,它仍然很糟糕。 我在模拟器(比微软的差很多)和真机(Wildfire S)中都试过了
好的,好的,Wildfire S 不是有史以来最快的 Android,但它是一款!位图不可能那么硬核。
而且我知道我必须有一个新的绘图线程,我必须通过 SurfaceView 来绘制,绘制到 Canvas 等等。
我在互联网上找不到任何可以帮助我的东西。 我希望这可能是有史以来最简单的答案,我会看起来像互联网历史上最伟大的菜鸟,但我会忍受......
有没有人知道如何做得更好?
(我没有使用 OpenGL EP,因为我只对简单的 2D 游戏感兴趣(还))
感谢您的阅读。
二汗
【问题讨论】:
-
您需要提供更多细节才能知道哪里出错了。即使是最慢的 Android 手机也可以以超过 30 fps 的速度绘制显示大小的位图。您是否将位图的位深度与显示器的位深度匹配?您是否要求系统将其绘制为完全不透明的?您是否将位图数据保存在位图对象中,而不是从资源中重复读取它?提供一些细节,然后“我们”可以回答您的问题。
-
请贴代码sn-p,以便我们找出问题所在。
标签: android multithreading drawing android-canvas