本期是接上期python pygame库的略学内容最后一个步骤,游戏与玩家交互的内容。
一、什么是事件
游戏需要与玩家交互,因此它必须能够接收玩家的操作,并根据玩家的不同操作做出有针对性的响应。程序开发中将玩家会对游戏进行的操作称为事件(Event),根据输入媒介的不同,游戏中的事件分为键盘事件、鼠标事件和手柄事件等。
pygame.locals
中常见事件的产生及参数:
事件 | 产生途径 | 参数 | 解释 | |
KEYDOWN | 键盘上的按键被按下 | unicode | 记录安静Unicode值 | |
key | 按下或放开的键的键值 | |||
mod | 包含组合键信息 | |||
KEYUP | 键盘上的键被放开 | key | ||
mod | ||||
MOUSEMOTION | 鼠标移动 | pos | 鼠标指针操作的位置,包含(x,y) | |
rel | 当前位置与上次鼠标事件时鼠标指针位置间的距离 | |||
buttons | 含有3个数字的元组,元组中数字的取值为(0,1,3),依次代表为左键、滚轮和右键 | |||
MOUSEUTTONDOWN | 鼠标键按下 | pos | ||
button | 整型数值,1表示单击鼠标左键,2表示单击滚轮,3表示单击右键,4表示向上滑动滚轮,5表示向下滑动滚轮 | |||
MOUSEBUTTONUP | 鼠标键放开 | pos | ||
button |
代码演示:
# 导入模块
import pygame,time
from pygame.locals import *
# 定义窗口高度和宽度、颜色
WIN_WIDTH = 658
WIN_HEIGHT = 243
# 设置颜色变量
BG_COLOR = (125,125,0)
MS_COLOR=(95,200,255)
MSGBG_COLOR=(23,78,20)
FPS=60
def main():
# 初始化模块
pygame.init()
# 创建窗体,即创建Surface
WINSET=pygame.display.set_mode((WIN_WIDTH,WIN_HEIGHT))
# 为窗口填充背景色
WINSET.fill(BG_COLOR)
# 设置窗口标题
pygame.display.set_caption('小游戏')
# 加载图片
# image=pygame.image.load('D:/Software/pycharm/网页请求/小游戏/image/wallhaven-j5mj3w_1920x1080.png')
# 绘制图片
# WINSET.blit(image,(0,0))
# 创建字体对象
BASICFONT=pygame.font.Font("D:/Software/字体/思源黑体/字体文件/SourceHanSansCN-Bold.otf",25)
# 渲染字体
msg_surf=BASICFONT.render('初始化…',True,MS_COLOR,MSGBG_COLOR)
# 绘制渲染到游戏窗口
WINSET.blit(msg_surf,(0,0))
# 制作背景副本
base_surf=WINSET.copy()
# 渲染字体
auto_surf=BASICFONT.rende