当前的问题是,由于每次调用 onDraw() 时我都必须为视图绘制背景,因此我在简单的 android 游戏中遇到了帧率问题。我目前每次调用 invalidate() 时都必须绘制大约 800 个位图,每个位图都是地图的一个元素。我正在使用 for 循环来绘制每个位图。
我想知道是否有一种更有效的方法来绘制位图,这样背景只能绘制一次并且玩家精灵会被更新。
我目前尝试只绘制一次背景,但画布只会覆盖背景,留下空白画布和角色精灵的视图。
提前感谢您的任何建议。
当前的问题是,由于每次调用 onDraw() 时我都必须为视图绘制背景,因此我在简单的 android 游戏中遇到了帧率问题。我目前每次调用 invalidate() 时都必须绘制大约 800 个位图,每个位图都是地图的一个元素。我正在使用 for 循环来绘制每个位图。
我想知道是否有一种更有效的方法来绘制位图,这样背景只能绘制一次并且玩家精灵会被更新。
我目前尝试只绘制一次背景,但画布只会覆盖背景,留下空白画布和角色精灵的视图。
提前感谢您的任何建议。
您可以使用 View.invalidate 方法和脏矩形作为输入
public void invalidate (Rect dirty)
有关更多信息,请参阅 API 参考http://developer.android.com/reference/android/view/View.html#invalidate(android.graphics.Rect)