python代码版计算机游戏基本理论之游戏循环与fps及pygame具体实现

你好,请进入Q群:225792826,免费下载本站最新提供的视频教程原创源码资料,从2020年2月20号到3月底,成为本站会员只要原价的3折,即2980元*0.3 = 894元 ,向微信scratch8付款即可成为本站会员。即可拥有本站所有原创资源,并提供技术支持。如本消息修改,以最后时间的为准。

一、游戏循环

游戏循环是电子游戏的核心。在这个循环中总是不断地渲染画面,而要改变这个画面,则是由预先设定的程序所决定。
如果没有人为的参与等外部因素,那么游戏就只会显示一幅动态的画面。基本的游戏框架如下所示:

running = True

while running:

   event_check()
   update_game()
   render_game()

event_check是对在游戏中发生的事件进行检测。如按键检测可能改变某个角色的移动速度,而在update_game的时候角色就会以不同的速度定位坐标。
最后render_game就会重新画这个角色。再比如有关闭窗口事件,也就是单击了windows左上角的X按钮,这时退出事件发生了。我们可以在event_check中检测到这个事件,如果此事件发生,我们就让running为False,这样while循环就退出了。游戏也就结束了。

二、FPS (frames per second)

fps就是每秒显示的画面,一个画面就是一帧。在一个while游戏循环中,计算机是以最快的速度更新游戏逻辑与重画。可能每秒能重画几百次画面,换成专业术语就是说fps能达到几百。
可是我们经常不需要这么快,为什么呢?这样会耗费大量的计算时间,让计算机CPU及GPU温度升高。对于手机就更不是一个好事情了。一般只要有个每秒画60次画面就行了。所以在render_game后,我们来一个等待一定的时间,当时间到了后才进行下一次循环,这样就能控制fps了。
如果还不明白,那么举个例子,我想fps为1,那这个fps就很慢了,1秒才渲染一幅画。假设event_check,update_game与render_game运行完只要0.00001秒。那么就需要等待0.99999秒。
所以要控制帧率,那么程序大概如下所示:

 

running = True
clock = Tick()

You must log in to read the rest of this article. Please log in or register as a user.

  

本站所有作品,教程等皆为原创,盗版必究。一旦付款,表示同意本站知识付费原则:数字商品,不支持退款。亦可直接向微信号scratch8付款购买。QQ群免费教学群:225792826 (提供真实姓名可入群)
李兴球的博客_Python创意编程技术前沿 » python代码版计算机游戏基本理论之游戏循环与fps及pygame具体实现

学本领,探索更大的世界!

李兴球博客 风火轮编程主页