申明: 原创不易,未经许可,不得转载
0.前言
hello,小伙伴们,我是带你们一起写游戏的猫姐!最近猫姐忙着做 python
编程入门的课程,曾经在抖音上更新了57 集,从 0 开始学习 python 编程的小伙伴,能够在抖音(抖音个人主页)下来看看,相对不会让你们悲观! 好了,咱们明天接着做游戏,明天猫姐给大家带来一款在抖音上很经典的小游戏,游戏中一个小朋友须要把从天而降蘑菇接住,然而只能接住没有毒的蘑菇。如果接住了有毒的蘑菇,游戏就失败了!这款游戏尽管很简略,整个游戏的代码也只有 200 多行
,然而却蕴含了python游戏编程里70%的外围知识点,所以只有你读懂了这款游戏的所有代码!你就能够开始开发本人的python
小游戏了,比方,像打飞机,打地鼠,这样的小游戏,你必定也是可能写的进去的!
尽管这个游戏很简略,然而为了让小伙伴真的能学会python
游戏编程 ,猫姐这里也要分成几个视频一步一步地教大家把这个游戏写进去。 明天这一集,咱们先来学习一下python
游戏编程的根本套路,学习完这个套路后,下一集,猫姐将在第一集代码的根底上,实现一个用方向键管制的小方块,成果是这样的。
当然,这个方块最初会变成一个采蘑菇的小朋友!不多说,咱们进入正题吧!
1.python游戏开发的根本套路
这一集,猫姐将带大家简略认识一下 pygame
,pygame
是 python
游戏开发的一个框架,应用这个框架咱们能够用 python
语言疾速开发出各种游戏。所以在写游戏代码前,还是须要理解一下 pygame
的根本工作原理。
2. 意识 pygame 的根本框架
首先,咱们新建一个 part1-game.py 的文件,而后关上这个文件开始写代码!咱们将 pygame
, locals
, sys
这些模块导入进来,不便前面应用。
import pygamefrom pygame.locals import *import sys
接下来再通过 pygame
的 init
函数实现游戏的初始化工作,因为咱们应用的游戏框架是 pygame ,在应用前,都须要对其进行一些初始化,大家不必过多的去理解细节,只有晓得这是必须的就能够了,就像咱们吃饭前要洗手,拿筷子一样。
pygame.init()
初始化工作实现后,因为咱们的游戏是运行在一个窗口外面,所以这里还要创立一个窗口。咱们先来定义窗口的宽度和高度,创立窗口能够通过pygame.display.set_mode
这个函数来实现,在 set_mode
函数的括号外面,须要传入的是游戏窗口的宽度和高度。这个函数将失去一个返回值,咱们用 screen
这个变量保留这个返回值。
WIDTH = 600HEIGHT = 800screen = pygame.display.set_mode((WIDTH, HEIGHT))
当初把程序运行一下,看看成果,单击鼠标右键,抉择Run + part1-game
,程序运行起来后,能够看到窗口一闪而过,就隐没了。
为什么窗口会隐没呢?这是因为代码从上到下胜利运行后就胜利退出了,而实在的游戏须要不停地刷新窗口,并将内容显在屏幕上,所以咱们还须要应用while True
这个有限循环,这样代码就不会退出了。在while True
循环外面,应用pygame.display.update
函数来更新屏幕上显示的内容。这里咱们能够看到一个比拟残缺代码了。
import pygamefrom pygame.locals import *import syspygame.init()WIDTH = 600HEIGHT = 800screen = pygame.display.set_mode((WIDTH, HEIGHT))while True: # 更新屏幕内容 pygame.display.update()
当初再把程序运行一下,看看成果,单击鼠标右键,抉择Run + part1-game
,程序运行起来后,就能够看到窗口不会隐没了(始终显示了)。
接下来,咱们点击窗口右上角的敞开按钮,能够看到,程序当初是一个未响应的状态。这是因为,咱们的程序不晓得怎么解决鼠标点击(敞开菜单)的事件,所以在while
循环外面,还须要解决鼠标点击敞开菜单的事件。
在pygame外面,解决鼠标或是键盘的事件是很简略的,咱们须要应用for
循环,遍历pygame.event.get
函数,通过pygame.event.get
函数能够失去鼠标或是键盘的事件列表。再通过event.type
来判断,事件是否等于QUIT
(点窗口x就会产生QUIT事件)。如果event.type
恒等于QUIT
,则零碎退出。
while True: for event in pygame.event.get(): if event.type == QUIT: sys.exit() pygame.display.update()
把程序运行起来看下成果,单击鼠标右键,抉择Run + part1-game
,程序运行起来后,鼠标点击敞开窗口右上角按钮,则窗口退出。