为什么我的event.type == pygame.K_无法正常工作?

时间:2014-10-19 04:26:08

标签: python events if-statement key pygame

请记住,此前有更多代码,其他导入链接到此处,但这与我的问题没有关系。

我想知道为什么我的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 :(得分:2)

检测到KEYDOWNKEYUP事件后,您需要检查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。