python - 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)
解决方案
您无需更改事件类型。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.event
和pygame.key
。
推荐阅读
- python - SyntaxError:训练神经网络模型时语法无效
- regex - PowerShell在运算符后替换未知的3个字母单词
- scene - 将场景转换为附加脚本的类型或通过在 Godot 中传递参数进行实例化
- python - 如何使用 Telethon 找出谁加入了电报频道
- python - Django:Integrityerror唯一约束失败user.id
- r - R中关于ROC曲线和阈值的问题
- azure-ad-b2c - 用户流和自定义策略可以共存吗?
- python - 熊猫 - 如何“不包含”
- codeigniter - 在 CodeIgniter 中完成 paytm 付款后我的会话销毁
- javascript - 使用请求拦截器时的axios cors问题