方向键
本课属于 Coddy Pygame 学习旅程的“游戏循环”单元。第 5 课,共 35 课。
要移动方块,请用变量保存它的位置,并在每一帧都在该位置绘制它。修改变量后,下一帧方块就会出现在别的位置。
pygame.key.get_pressed() 会告诉你当前按住了哪些按键。用按键常量(例如 pygame.K_RIGHT)对它进行索引:按住该键时,结果为 True。
x = 100
while running:
# 事件
keys = pygame.key.get_pressed()
if keys[pygame.K_RIGHT]:
x += 4
# 先填充,再在 x 处绘制按住向右键,方块每帧移动 4 个像素,以每秒 60 帧计算,每秒移动 240 个像素。方向键分别是 K_LEFT、K_RIGHT、K_UP 和 K_DOWN。向上移动意味着 y 值变小。
在循环开始前创建变量。在循环内设置的变量会在每一帧重新开始。x, y = 100, 50 可以在一行中设置两个名称:x 的值是 100,y 的值是 50。
挑战
简单用方向键移动正方形。
- 在循环之前,设置
x, y = 220, 160和speed = 4。 - 在循环中,处理完事件后,读取
pygame.key.get_pressed()。按住的每个方向键都会让x或y按speed的值改变。 - 在
(x, y, 40, 40)处绘制正方形。
按“开始”并按住方向键,正方形就会移动。然后按“检查”。
亲手试试
import pygame
pygame.init()
screen = pygame.display.set_mode((480, 360))
pygame.display.set_caption("Move the Square")
clock = pygame.time.Clock()
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
screen.fill((30, 30, 46))
pygame.draw.rect(screen, (255, 196, 0), (220, 160, 40, 40))
pygame.display.flip()
clock.tick(60)
pygame.quit()
游戏循环中的所有课
自己练习: Pygame 在线编辑器