首页 > 解决方案 > Pygame 密钥约定

问题描述

我想使用 wasd 键而不是箭头键来移动但我不知道如何使用以下代码来执行此操作。我想pygame.KEYDOWN 用 s 的按钮替换,但我不知道该怎么做。

if event.type == pygame.KEYDOWN:
    if event.key == pygame.K_LEFT:
        Pacman.changespeed(-30, 0)
    if event.key == pygame.K_RIGHT:
        Pacman.changespeed(30, 0)
    if event.key == pygame.K_UP:
        Pacman.changespeed(0, -30)
    if event.key == pygame.K_DOWN:
        Pacman.changespeed(0, 30)

标签: pythonpygame

解决方案


您无需更改事件类型。w, a, s,d分别由pygame.K_w, pygame.K_a,pygame.K_s和表示pygame.K_d,但事件类型仍然是pygame.KEYDOWN

if event.type == pygame.KEYDOWN:
    if event.key == pygame.K_d:
        Pacman.changespeed(-30, 0)
    if event.key == pygame.K_a:
        Pacman.changespeed(30, 0)
    if event.key == pygame.K_w:
        Pacman.changespeed(0, -30)
    if event.key == pygame.K_s:
        Pacman.changespeed(0, 30)

注意:KEYDOWN不是指“向下”键,而是指一个键被按下。当KEYDOWN按键被按下KEYUP时发生事件,当按键被释放时事件发生。见pygame.eventpygame.key


推荐阅读