我刚发现了一些东西,我想知道如何以及为什么.我正在为Android开发一款小型街机游戏.我决定忽略OpenGL并使用标准的SurfaceView和Drawables来做它,因为它假设很轻(10个精灵左右).我有加载的drawable,我使用Draw方法并将它们传递给我的画布.这是每个精灵如何绘制到屏幕上的.事实证明,绘制4-5个大精灵(200X400左右)需要很长时间才能使用不那么全新的手机型号.足够长的时间让我的游戏无法播放.我们谈论使用这种方法绘制单帧的时间为50-60毫秒.除了画画之外我真的不做任何事情,无处可削减成本.所以我决定尝试使用Bitmaps.但是,我需要预先设置大小,因为没有'setBounds' 位图中的方法.没问题,我调整它们以适应当前屏幕的负载,问题解决了.
好.所以我得到了位图.我现在使用Canvas.DrawBitmap进行绘制.我采用了新的绘制方法......我获得了400%的性能提升!而不是50-60ms,整个绘制循环现在需要8-12ms.我勒个去?? 为了排除它,我也计时setBounds,它需要<1ms,所以不应该责怪.这是实际的Drawable.Draw,减慢了速度.
对我来说这是个好消息,因为我真的不想学习OpenGL让我的游戏可玩,但我不禁想知道它 - 它没事吗?我的方法有问题吗?为什么不在任何地方提到它?
of SurfaceViewyourCanvas旨在当您应该不断迭代时使用,但Drawable并非用于此目的。
| 归档时间: |
|
| 查看次数: |
10867 次 |
| 最近记录: |