擅长:python、mysql、java
<p>让我们从头开始,在编写游戏时,让渲染循环远离程序的主循环(处理窗口事件的主循环)是非常重要的。这样,即使在渲染过程中有东西卡住,窗口也不太可能变得无响应。在其他好处中,例如,人们可以调整大小,并以其他方式操作它,而不会中断图形线程。
web上有一些很好的教程,虽然我手头没有关于python的教程,<a href="http://sfml-dev.org/tutorials/2.1/" rel="nofollow">SFML tutorials can teach you the right concepts</a>可以在python中使用。在</p>
<p>随着公共服务的退出,当你已经将应用程序分割成不同的线程时,我们就剩下动画的问题了。非常简单的实现(当然不是最好的)是为每个图像生成一个单独的线程,该线程只会对类似的内容进行排序:</p>
<pre><code>def shake_it():
while True:
time.sleep(3)
#do rotation here
</code></pre>
<p>虽然这会很好地工作,但显然不是最好的解决方案,因为它非常不灵活。想象一下,现在你还想定期做些别的事情,比如让你的npc巡逻堡垒。这将需要另一个线程,这将很快升级到相当多的线程(这本身并不坏,但不是理想的效果)。在</p>
<p>因此,一个更通用的线程事件处理程序将起到拯救作用。一个类,它将控制所有需要以特定间隔执行的函数。然后,在这个额外的线程中,你将在循环中运行event_handler的一个实例,它将作为动画等动作的抽象。在</p>