【问题标题】:Key inputs not working with Pygame键输入不适用于 Pygame
【发布时间】:2023-04-08 05:37:01
【问题描述】:

我一直在寻找这个问题的答案,但我似乎无法找到它。

我遇到的这个问题是,当使用 Sublime Text 3 编写一个简单的 pygame 脚本时,我无法让它响应关键输入。每当我按下一个键(特别是箭头键)时,它只会在编辑器中注册,而不是在游戏窗口中注册。虽然注册了鼠标输入,但这使得它更加奇怪。

有什么建议吗?

import pygame
pygame.init()

display_width = 800
display_height = 600

gameDisplay = pygame.display.set_mode((display_width, display_height))
pygame.display.set_caption('A bit Racey')

black = (0, 0, 0)
white = (255, 255, 255)

clock = pygame.time.Clock()
crashed = False
carImg = pygame.image.load('racecar.png')
x = (display_width * 0.45)
y = (display_height * 0.8)


def car(x, y):
    gameDisplay.blit(carImg, (x, y))


x_change = 0
car_speed = 0

while not crashed:
    #print(pygame.event.get_grab())
    #pygame.event.set_grab(1)
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            print("Hello")
            crashed = True
        ############################
        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_LEFT:
                x_change = -5
            elif event.key == pygame.K_RIGHT:
                x_change = 5
        if event.type == pygame.KEYUP:
            if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT:
                x_change = 0
        if event.type == pygame.MOUSEBUTTONDOWN:
            print("hello my baby")
        ######################
    ##
    x += x_change
    gameDisplay.fill(black)
    car(x, y)
    pygame.display.update()
    pygame.display.flip()
    clock.tick(30)

pygame.quit()
quit()

【问题讨论】:

标签: python-3.x pygame sublimetext3 anaconda


【解决方案1】:
if event.type == KEYDOWN:
     if event.key == K_LEFT:
          x_change = -5
     elif event.key == K_RIGHT:
          x_change = 5
elif event.type == KEYUP:
     if event.key == K_LEFT or event.key == K_RIGHT:
          x_change = 0
elif event.type == MOUSEBUTTONDOWN:
     print("hello my baby")

我认为我对您的代码所做的更改将解决您遇到的问题。让我知道它是否有效。

编辑:在我的所有 pygame 脚本中,我将:“from pygame.locals import *”添加到我的导入列表中,这样我就不会在所有内容前面输入 pygame。这应该可以解决您在使用我的脚本时遇到的错误。

【讨论】:

  • 不幸的是它不起作用。它直接崩溃并显示“KEYDOWN”未定义的错误消息。不过还是谢谢你的帮助。
  • 这太糟糕了,在 python 2.79 上运行得非常好。对此感到抱歉。
猜你喜欢
  • 1970-01-01
  • 2021-07-24
  • 2019-05-27
  • 2020-08-16
  • 2011-12-14
  • 2011-05-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多