方向键
Coddy 用 Pygame 制作游戏 课程的第 5 课,共 41 课。
要移动正方形,请将它的位置保存在变量中,并在每一帧都在该位置绘制它。改变变量的值,下一帧就会在别的位置显示正方形。
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 制作游戏中的所有课
自己练习: Pygame 在线编辑器