我一直在寻找答案,我似乎无法找到答案。
我遇到的这个问题是,当使用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()
答案 0 :(得分:0)
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脚本中,我包括:“从pygame.locals import *”到我的导入列表,这样我就不会在所有内容前面输入pygame。这应该可以解决你的脚本错误。