既然是游戏,那么就必须让玩家自己参与进来。
这次我们就上一次的全自动对打乒乓进行改造,让玩家能够参与到这个游戏之中。
Pygame 事件
pygame支持许多长剑的事件,比如QUIT,KEYDOWN,KEYUP,MOUSEMOTION,MOUSEBUTTONUP,MOUSEBUTTONDOWN等等,我不打算在这里介绍所有的pygame时间。
我们可以在一个死循环 While True
里调用 pygame.event.get()
获得一个当前正在等待处理的事件的一个列表。
我们可以使用 for 循环来遍历这个列表:
for event in pygame.event.get()
比如常见的QUIT事件:
while True:
for event in pygame.event.get():
if event.type == QUIT:
sys.exit()
elif event.type == KEYDOWN:
if event.key == pygame.K_ESCAPE:
sys.exit()
设备轮询
pygame程序交互的另一种方式 pygame.key.get_pressed()
该方法获取所有键盘按钮的状态。
返回一组布尔值,表示键盘上每个键的状态。 使用键常量值来索引数组。 True值表示按下该按钮。使用此功能获取按下的按钮列表不是处理来自用户的文本输入的正确方法。因为你无法知道用户按键的先后顺序。
常见的使用方法:
keys = pygame.key.get_pressed()
if key[K_ESCAPE]:
sys.exit()
画个矩形来上下移动
大概知道了pygame的两种交互实现方式,那么就先用起来,来个最简单的程序:在窗口上画个矩形,WASD或者上下左右来使这个矩形移动。
把上一次的对打乒乓代码稍微改造一下:
# 移动矩形
# Python 3.6
# pygame 1.9
# Author zhunw
import pygame, sys, time, random
from pygame.locals import *
pygame