艺小卤 发表于 2025-4-5 22:07:35

FishC 发表于 2025-4-5 22:08:43

代码问题分析及修正方案

这个代码存在以下几个主要问题:

1. 方法名拼写错误
原代码:pygame.key.get_preseed()
正确应为:pygame.key.get_pressed()

2. 按键检测逻辑错误
所有移动判断条件都写成重复的 key_pressed or key_pressed,应该改为检测具体按键

3. 缺少按键常量引用
没有导入/使用pygame的按键常量如 pygame.K_UP 等

修正后的代码:


def main():
    # ... 省略其他初始化代码 ...

    while running:
      for event in pygame.event.get():
            if event.type == pygame.QUIT:
                pygame.quit()
                sys.exit()

      # 修正后的按键检测部分
      key_pressed = pygame.key.get_pressed()
      
      if key_pressed or key_pressed:
            me.moveUp()
      if key_pressed or key_pressed:
            me.moveDown()
      if key_pressed or key_pressed:
            me.moveLeft()
      if key_pressed or key_pressed:
            me.moveRight()

      # ... 省略绘制代码 ...


主要修改说明:

[*]使用 pygame.K_UP 等标准按键常量
[*]支持 WASD 和方向键双重控制
[*]每个移动方向对应明确的按键检测
[*]修正了拼写错误的 get_pressed() 方法


建议在代码开头添加按键常量导入:

from pygame.locals import *

这样可以直接使用 K_UP 而不需要写 pygame.K_UP

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

player-none 发表于 2025-4-5 23:30:16

有没有一种可能是你没import

还有你这样问问题很难不让别人举报
页: [1]
查看完整版本: 代码问题