请记住,此前有更多代码,其他导入链接到此处,但这与我的问题没有关系。
我想知道为什么我的event.type == pygame.K_RIGHT命令不起作用。 当我运行代码时,它表示没有错误,但玩家无法移动。
pygame.mouse.set_cursor(*pygame.cursors.diamond)
movex, movey = 0,0
while gameLoop:
for event in pygame.event.get():
if (event.type==pygame.QUIT):
gameLoop=False
if (event.type==pygame.KEYDOWN):
if (event.type==pygame.K_d):
movex=5
elif (event.type==pygame.K_a) :
movex=-5
if (event.type==pygame.KEYUP):
if (event.type==pygame.K_RIGHT):
movex=0
elif (event.type==pygame.K_LEFT) :
movex=0
window.fill (blue)
player.render(window)
player.x+=movex
clock.tick(60)
pygame.display.flip()
pygame.quit()
答案 0 :(得分:2)
检测到KEYDOWN
或KEYUP
事件后,您需要检查event.key
属性而不是event.type
以了解按下了哪个键。像这样:
for event in pygame.event.get():
# The KEYDOWN event was posted
if event.type == pygame.KEYDOWN:
# The down arrow key was pressed
# Note the key attribute is being checked rather than type
if event.key == pygame.KEY_DOWN:
# do something
# The right arrow key was pressed
elif event.key == pygame.K_RIGHT:
# do something else
答案 1 :(得分:0)
if (event.type==pygame.K_RIGHT):
movex=0
你已经把movex = 0因此玩家没有移动。你需要改变它。将其更改为movex = 1。