我已经将我的减速范围缩小到这个方法
public void drawMap(Canvas canvas) {
if (car.x > 0 && map != null) {
clipArea = Bitmap.createBitmap(map, mapx, mapy, getWidth(),
getHeight());
canvas.drawBitmap(clipArea, 0, 0, null);
}
}
这大约需要3秒才能运行!任何帮助将不胜感激,位图大约是屏幕大小的两倍,但这是我的游戏的关键,所以我需要保留这一点:)有任何优化的帮助吗?谢谢
发布于 2014-02-15 18:45:09
无论整个计算和ui更新花费多长时间,您始终在此等待固定的时间
frame.postDelayed(frameUpdate, FRAME_RATE);
你想做的是:在新的“游戏计时”之前,你创建一个时间戳变量,然后进行计算,然后检查离下一个计时还有多少时间。
如下所示:
synchronized public void run() {
Date timestamp = new Date();
// do your calculations
...
// calculate how much time it took and when the next update should be:
int timeToNextTick = FRAME_RATE - (new Date().getTime() - timestamp.getTime());
frame.postDelayed(frameUpdate, timeToNextTick);
}
这样,更新计时应该总是相等的(假设设备能够在帧速率值内运行代码)
https://stackoverflow.com/questions/21796337
复制相似问题