头图

声明: 原创不易,未经许可,不得转载

xa

0.前言

hello,小伙伴们,我是带你们一起写游戏的猫姐!最近猫姐忙着做 python 编程入门的课程,已经在抖音上更新了57 集,从 0 开始学习 python 编程的小伙伴,可以在抖音(抖音个人主页)上去看看,绝对不会让你们失望! 好了,我们今天接着做游戏,今天猫姐给大家带来一款在抖音上很经典的小游戏,游戏中一个小朋友需要把从天而降蘑菇接住,但是只能接住没有毒的蘑菇。如果接住了有毒的蘑菇,游戏就失败了!这款游戏虽然很简单,整个游戏的代码也只有 200 多行,但是却包含了python游戏编程里70%的核心知识点,所以只要你读懂了这款游戏的所有代码!你就可以开始开发自己的python小游戏了,比如,像打飞机,打地鼠,这样的小游戏,你肯定也是能够写的出来的!

虽然这个游戏很简单,但是为了让小伙伴真的能学会python游戏编程 ,猫姐这里也要分成几个视频一步一步地教大家把这个游戏写出来。 今天这一集,我们先来学习一下python游戏编程的基本套路,学习完这个套路后,下一集,猫姐将在第一集代码的基础上,实现一个用方向键控制的小方块,效果是这样的。

当然,这个方块最后会变成一个采蘑菇的小朋友!不多说,我们进入正题吧!

1.python游戏开发的基本套路

这一集,猫姐将带大家简单认识一下 pygamepygamepython 游戏开发的一个框架,使用这个框架我们可以用 python 语言快速开发出各种游戏。所以在写游戏代码前,还是需要了解一下 pygame 的基本工作原理。

2. 认识 pygame 的基本框架

首先,我们新建一个 part1-game.py 的文件,然后打开这个文件开始写代码!我们将 pygamelocalssys 这些模块导入进来,方便后面使用。

import pygame
from pygame.locals import *
import sys

接下来再通过 pygameinit 函数完成游戏的初始化工作,因为我们使用的游戏框架是 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,程序运行起来后,鼠标点击关闭窗口右上角按钮,则窗口退出。

窗口退出


猫姐_游戏编程
56 声望17 粉丝

😸猫姐,211硕士,定居成都的荆州人,5年IT生涯,教大家做益智小游戏,快乐学编程