乐趣区

关于pygame:01基本套路篇学习python游戏开发你不能错过这个

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

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,程序运行起来后,鼠标点击敞开窗口右上角按钮,则窗口退出。

退出移动版