【求大神】基于surfaceview,控制绘图线程实现物体快慢不一。

boybaozi 2015-10-16 05:30:51
想实现2个物体在同一surfaceview上有不同的速度,不像单纯的用x+数值,因为如果我要表示一个很慢的物体和很快的物体是不行的,会出现图片移动过程的丢失。问下我能不能在再写一个绘图线程区分开来?但是我实现之后发现图片全都出现了卡顿,也许和surfaceHolder.lockCanvas(null);有关系?或者有什么好办法求指导,贴上线程代码:

@Override
public void run() {
while (this.isWorking){
Canvas canvas = surfaceHolder.lockCanvas(null);

gameView.doDraw(canvas);
gameView.doSpeedDraw(canvas);

surfaceHolder.unlockCanvasAndPost(canvas);
try {
Thread.sleep(sleepSpan);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}


...全文
80 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
boybaozi 2015-10-20
  • 打赏
  • 举报
回复
引用 1 楼 luqing414 的回复:
还是只用一个线程啊,快的那个每次都x+数值,慢的那个你可以用一个变量计数,当变量达到计数值时再x+数值,否则就是x
好吧如果实现的东西比较复杂比如2d游戏,也都是1个绘制线程搞定的么?
luqing414 2015-10-16
  • 打赏
  • 举报
回复
还是只用一个线程啊,快的那个每次都x+数值,慢的那个你可以用一个变量计数,当变量达到计数值时再x+数值,否则就是x

80,350

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧