大多数游戏都采用以下结构编程:
[GAME LOOP]
Update method(ticks based on the delta time)
Render method(ticks as fast as possible)
Run Code Online (Sandbox Code Playgroud)
为什么你不能实现Runnable并实际创建一个无限循环:
while(true){
update();
render();
}
Run Code Online (Sandbox Code Playgroud)
你可以真正总结所有这些"为什么使用线程?"
我从未尝试过,但我希望得到一个明智的答案.
当一些后台工作正在进行时,游戏(UI渲染)不应该挂起.
如果你说
while(true){
update(); //say it takes 1 min
render();
}
Run Code Online (Sandbox Code Playgroud)
您的游戏将不会响应1分钟的update()方法执行.
如果你愿意写下面的话
while(true){
Thread t = new Thread(new Runnable(){
public void run() {
update(); //say it takes 1 min
}
});
t.start();
render();
}
Run Code Online (Sandbox Code Playgroud)
update()将运行异步 (由单独的THEAD的手段),平行,不停止你的主要游戏程序
| 归档时间: |
|
| 查看次数: |
1077 次 |
| 最近记录: |