声明: 原创不易,未经许可,不得转载
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 pygame
from pygame.locals import *
import sys
接下来再通过 pygame
的 init
函数完成游戏的初始化工作,因为我们使用的游戏框架是 pygame ,在使用前,都需要对其进行一些初始化,大家不用过多的去了解细节,只要知道这是必须的就可以了,就像我们吃饭前要洗手,拿筷子一样。
pygame.init()
初始化工作完成后,由于我们的游戏是运行在一个窗口里面,所以这里还要创建一个窗口。我们先来定义窗口的宽度和高度,创建窗口可以通过pygame.display.set_mode
这个函数来实现,在 set_mode
函数的括号里面,需要传入的是游戏窗口的宽度和高度。这个函数将得到一个返回值,我们用 screen
这个变量保存这个返回值。
WIDTH = 600
HEIGHT = 800
screen = pygame.display.set_mode((WIDTH, HEIGHT))
现在把程序运行一下,看看效果,单击鼠标右键,选择Run + part1-game
,程序运行起来后,可以看到窗口一闪而过,就消失了。
为什么窗口会消失呢?这是因为代码从上到下成功运行后就成功退出了,而真实的游戏需要不停地刷新窗口,并将内容显在屏幕上,所以我们还需要使用while True
这个无限循环,这样代码就不会退出了。在while True
循环里面,使用pygame.display.update
函数来更新屏幕上显示的内容。这里我们可以看到一个比较完整代码了。
import pygame
from pygame.locals import *
import sys
pygame.init()
WIDTH = 600
HEIGHT = 800
screen = 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
,程序运行起来后,鼠标点击关闭窗口右上角按钮,则窗口退出。