人们通常会在其播放器类中编写“draw(SpriteBatch batch)”和“update(float deltaTime)”方法。他们为什么不写“render(SpriteBatch batch,float deltaTime)”?因为可读性?我的意思是,为什么他们制作两种方法?他们可以用单一方法做。
答案 0 :(得分:2)
可读性和易于更新/更改是一个原因。
但也有后勤原因。在开始绘图之前,您需要确保整个游戏状态是完全最新的,因此屏幕上的任何内容都是尽可能最新的。如果将更新和呈现放入每个对象的一个方法中,那么与稍后更新的对象相比,首先更新和绘制的对象可能看起来过时并影响早期对象的状态。但如果更新和绘图分开,您可以更新整个游戏,然后绘制整个游戏。
如果您的游戏使用物理,则更新和绘图的分离允许您以fixed timestep(以与绘图不同的速率)更新您的世界,以确保游戏不受帧速率的影响。
答案 1 :(得分:1)
那是因为你想在游戏逻辑和渲染功能之间分开。它更容易阅读,如果您想比渲染逻辑更频繁地更新游戏逻辑,也会有所帮助。