Menu
CoddyTech

方向键

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。

challenge icon

挑战

简单

用方向键移动正方形。

  1. 在循环之前,设置 x, y = 220, 160 和 speed = 4。
  2. 在循环中,处理完事件后,读取 pygame.key.get_pressed()。每个按住的方向键都会让 x 或 y 按 speed 的值变化。
  3. 在 (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 在线编辑器