首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >游戏编程性能

游戏编程性能
EN

Stack Overflow用户
提问于 2014-02-15 18:34:49
回答 1查看 88关注 0票数 3

我已经将我的减速范围缩小到这个方法

代码语言:javascript
运行
复制
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秒才能运行!任何帮助将不胜感激,位图大约是屏幕大小的两倍,但这是我的游戏的关键,所以我需要保留这一点:)有任何优化的帮助吗?谢谢

EN

回答 1

Stack Overflow用户

发布于 2014-02-15 18:45:09

无论整个计算和ui更新花费多长时间,您始终在此等待固定的时间

代码语言:javascript
运行
复制
 frame.postDelayed(frameUpdate, FRAME_RATE);

你想做的是:在新的“游戏计时”之前,你创建一个时间戳变量,然后进行计算,然后检查离下一个计时还有多少时间。

如下所示:

代码语言:javascript
运行
复制
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);

}

这样,更新计时应该总是相等的(假设设备能够在帧速率值内运行代码)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21796337

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档