为什么我的event.type==pygame.K_不起作用?
请记住,在这段代码之前还有更多的代码和其他相关的导入,但这些和我的问题无关。
我想知道为什么我的 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()
2 个回答
0
if (event.type==pygame.K_RIGHT):
movex=0
你把movex设成了0,所以角色就不动了。你需要改一下,把它改成movex = 1。
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