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

 

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

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

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_
贪吃蛇是一款经典的游戏,因其简单易懂而广受欢迎。借助Python中的pygame库,我们可以轻松实现这款游戏,该库为游戏开发提供了强大的图形界面和功能支持。 在当今科技飞速发展的时代,游戏已成为人们休闲娱乐的重要方式之一。贪吃蛇凭借其简单易上手的特点,一直深受玩家喜爱。通过在Python中实现贪吃蛇游戏,不仅可以巩固编程基础知识,还能加深对Python语言的理解,尤其是对pygame库的运用。 设计贪吃蛇游戏的主要目的是激发编程兴趣,提升对Python语言的掌握能力,尤其是运用pygame进行游戏开发的技能。通过这个项目,开发者能够学习到需求分析、概要设计和详细设计等软件开发流程,同时锻炼项目分析和程序设计能力。 游戏界面为一个640×480像素的窗口。蛇由多个小矩形组成,初始长度固定。蛇的移动通过键盘控制,方向键可改变蛇头的方向,每次移动一节身体。当蛇头碰到食物时,蛇体增长,分数增加;如果蛇头碰到自己的身体或游戏边界,游戏结束。 初始化:设置游戏窗口大小,确定蛇头和食物的初始位置。 游戏控制:使用W、S、A、D键控制蛇的移动。蛇吃到食物后,食物位置随机更新,蛇体增长。 分数系统:蛇体每增长一节,分数相应增加。 游戏结束:蛇头碰撞到自身或边界时,游戏结束,显示“game over”,等待5秒后退出。 项目的开发流程主要包括游戏界面的创建、游戏逻辑的编写、事件处理、图形绘制和更新等步骤。 游戏的核心代码包括以下部分: 导入pygame及相关模块,初始化游戏环境。 创建游戏主窗口,并设置其尺寸。 定义蛇和食物的初始状态,如位置、速度等。 实现游戏循环,处理用户输入,更新蛇和食物的位置。 使用pygame库的绘图功能绘制蛇、食物和得分。 检查碰撞条件,判断游戏是否结束。 更新游戏屏幕并控制帧率,确保游戏流畅运行。 开发者还可以在此基础上添加更多功能,如多级难度、自定义皮肤、音效等

10,106

社区成员

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

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

 

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

 

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

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