🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
我们这个章节学习使用pygame开发游戏。平时我们玩儿过很多游戏,这次我们来开发一个自己的游戏,是不是很酷?赶紧开始吧! ![](https://wx2.sinaimg.cn/mw690/006HvFS6ly1fvpab16k74g30e00cghdw.gif) ## pygame 是什么 首先,我们还是先写一个Helloworld,看一下怎么pygame是什么。 ``` import pygame, sys from pygame.locals import * pygame.init() DISPLAYSURF = pygame.display.set_mode((400, 300)) pygame.display.set_caption('Hello World!') while True: for event in pygame.event.get(): if event.type == QUIT: pygame.quit() sys.exit() pygame.display.update() ``` ![](https://s1.ax1x.com/2018/09/28/iQTf1K.png) ## 引入pygame ``` import pygame, sys from pygame.locals import * ``` 我吗使用import语句将 pygame引入进来,pygame.locals定义了很多pygame需要使用的数据常量,因此,我们也把它引入进来。 ## 初始化 我们调用`pygame.init()`完成pygame的加载,这个方法初始化了pygame用到的所有模块。在写游戏逻辑之前,一定要调用init方法,否则会报`pygame.error: font not initialized`的错误。 我们使用`pygame.display.set_mode((400, 300))`方法设置游戏窗口的宽高,注意我们传入`(400, 300)`参数是一个元组;调用`pygame.display.set_caption('Hello World!')`方法设置游戏窗口的标题。 ## 游戏主循环 接下来,我们使用了一个特殊的`while True:`循环。因为循环条件永远为True,所以程序会一遍又一遍的执行循环体里的代码。这个是游戏的主循环,我们一般会在这个循环里完成游戏的主要逻辑操作: 1. 处理游戏事件。 2. 更新游戏状态。 3. 将游戏状态画到游戏窗口上。 ![](https://s1.ax1x.com/2018/09/28/iQOUh9.png) ## 游戏状态 那什么是游戏状态呢?英雄血量、子弹数量、敌人等级 这些数字会随着游戏的推进发生变化,这些都是游戏状态。我们根据用户在游戏上操作来更改这些状态。当这些状态发生变更后,我们需要调用`pygame.display.update()`方法更新游戏画面。 ![](https://rmdzone-hhsadesgerr3vvrwmvf.netdna-ssl.com/wp-content/uploads/2018/06/gamestate7.jpg) ## 事件监听 `pygame.event.get()` 方法获取了用户在游戏窗口上的所有操作,比如按钮点击、键盘按下等。因此,这个方法返回的是一个列表。我们使用for循环还取到每一事件,对事件作出响应。 ## 退出游戏 `if event.type == QUIT:` 在下面的if语句里,我们判断如果事件类型是QUIT,我们就调用`pygame.quit()`方法退出游戏。同时结束游戏的运行。 ![](https://s1.ax1x.com/2018/09/20/inCsxI.jpg) **阿达老师-孩子身边的编程专家** *完整课程请关注阿达老师,主页里有完整的课程目录和观看地址*