简介 游戏是一种即时系统,这篇文章会示例如何设计游戏的主回圈 背景 游戏是一个随著状态改变的世界,我们可以将玩家的输入看成是一种状态, 同时游戏自身的反应也是一种状态,状态改变后,要将状态显示给玩家 而在游戏的设计中,有三种方式来做到游戏世界的状态改变 游戏回圈 while(!GameEnd) { Update(); Render(); } void Loader() { thread t1 = new thread(&Update,1000/frequency); t1.Start(); thread t2 = new thread(&Render,1000/60); t2.Start(); } void Update() { // do update } void Render() { // do render } ong lastTime = getTimeTick(); while(!GameEnd) { if( (getTimeTick() - lastTime) > (1000/frequency) ) { Update(); lastTime = getTimeTick(); } Render(); } 第一种游戏回圈,是每次都呼叫更新和绘制,这样的作法,当更新效能差的时候,会跟著让画面的绘制变差 第二种回圈是利用多绪来实践,要注意硬体是否支援,以及资料的同步 第三种回圈是利用计时器,来作更新的频率判断