pygame 按方向键可以,按W A S D就不行,为什么?

明月别枝惊鹊丶 2023-10-30 13:17:56
            # 定义向上移动方法,当飞机移动到边框位置时,无法移动
            if event.key == pygame.K_w or event.key == pygame.K_UP :
                if self.myAircraftRect[1] <= 0:
                    self.myAircraftRect[1] = 0
                else:
                    self.myAircraftRect[1] -= self.speed
            # 定义向下移动方法,当飞机移动到边框位置时,无法移动
            if event.key == pygame.K_DOWN or event.key == pygame.K_s:
                if self.myAircraftRect[1] >= HEIGHT - MY_AIRCRAFT_HEIGHT:
                    self.myAircraftRect[1] = HEIGHT - MY_AIRCRAFT_HEIGHT
                else:
                    self.myAircraftRect[1] += self.speed
            # 定义向左移动方法,当飞机移动到边框位置时,无法移动
            if event.key == pygame.K_LEFT or event.key == pygame.K_a:
                if self.myAircraftRect[0] <= 0:
                    self.myAircraftRect[0] = 0
                else:
                    self.myAircraftRect[0] -= self.speed
            # 定义向右移动方法,当飞机移动到边框位置时,无法移动
            if event.key == pygame.K_RIGHT or event.key == pygame.K_d:
                if self.myAircraftRect[0] >= WIDTH - MY_AIRCRAFT_WIDTH:
                    self.myAircraftRect[0] = WIDTH - MY_AIRCRAFT_WIDTH
                else:
                    self.myAircraftRect[0] += self.speed

 

...全文
318 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
CSDN-Ada助手 2023-10-30
精选
  • 打赏
  • 举报
回复 1
您的问题已经帮您同步至问答, 链接: https://ask.csdn.net/questions/8020842, 请您保持关注, 如果回答有帮助解决此问题, 麻烦您动动小手给相关的回答点赞, Ada会在评论区为您更新结题状态
weixin_48771932 2023-11-11
  • 打赏
  • 举报
回复

在中文模式下,不行.改成英文模式就可以了

Filotimo_ 2023-10-30
  • 打赏
  • 举报
回复 2

根据您提供的代码,按方向键可以移动飞机,但按WASD键却没有效果。出现这种情况可能是因为键盘事件的处理方式不正确。

在Pygame中,键盘事件的处理需要通过pygame.event.get()方法获取事件,并对事件进行处理。您提供的代码没有包含获取事件的过程,可能是因为此部分代码未被包含在循环中。

建议您将键盘事件处理的代码包含在主循环中,示例代码如下:

for event in pygame.event.get():
    if event.type == pygame.KEYDOWN:
        if event.key == pygame.K_w or event.key == pygame.K_UP :
            # 向上移动逻辑
        if event.key == pygame.K_s or event.key == pygame.K_DOWN :
            # 向下移动逻辑
        if event.key == pygame.K_a or event.key == pygame.K_LEFT :
            # 向左移动逻辑
        if event.key == pygame.K_d or event.key == pygame.K_RIGHT :
            # 向右移动逻辑

请注意,在处理键盘事件时,需要根据按下的键进行处理,而不是通过按键名称进行判断。例如,使用event.key判断W键对应的按键代码pygame.K_w,而不是判断键名字符串"w"

如果您已经将键盘事件处理的代码包含在主循环中,请确保没有其他地方重写了键盘事件的处理逻辑。

  • 举报
回复 1
@Filotimo_

5,965

社区成员

发帖
与我相关
我的任务
社区描述
人生苦短,我用python
社区管理员
  • Python 学习者
  • 嗨学编程
  • 松鼠爱吃饼干
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

欢迎来到Python学习者们的社区,

 

本社区分享你需要的文章、问题解答、技术互助、学习资源、面试系列等等

 

欢迎你的加入,祝你学有所成~

试试用AI创作助手写篇文章吧