所以我正在为一个学校项目开发游戏,到目前为止它还不错,但我一直在尝试使用位图图像而不是仅仅使用drawColor作为背景,但这样做会让游戏变得迟钝,不响应Touch Events,最终会在一段时间后崩溃。到目前为止,这是我的代码,用于使背景保持崩溃,我在drawBitmap之前使用getColor来消除之前的背景,因为没有它,移动的角色线程离开了“跟踪”并且在每次移动后都没有被删除
canvas.drawColor(Color.BLACK);
canvas.drawBitmap
(BitmapFactory.decodeResource(getResources(),R.drawable.park),0,0,null);
因此,为了让线程移动而制作静态背景图像的任何更有效的方法都将受到赞赏!
答案 0 :(得分:3)
您正在做的是每次渲染时都在加载位图,这就是为什么它会因为内存限制而运行缓慢并在一段时间后崩溃。初始化所有内容时,您应该加载一次图像:
// run once when you start the game
Bitmap background = BitmapFactory.decodeResource(getResources(),R.drawable.park);
在渲染代码中:
canvas.drawBitmap(background);
当你完成它时,不要忘记太自由了:
background.recycle();
答案 1 :(得分:0)
您的应用程序速度减慢的原因是您对同一位图保留了太多引用,这会消耗您可用的内存量,您需要在不需要时释放图像。 Romain Guy有很多关于图形和游戏图形的视频。在youtube上查看,您将学习如何处理这个问题。