简体   繁体   English

在Pygame KEYDOWN上需要帮助

[英]Need help on Pygame KEYDOWN

Just looking for assistance, 只是在寻求帮助,

How can I adjust this so my character only moves when the LEFT of RIGHT key is held down & stops when key is released? 如何调整此设置,使角色仅在按住RIGHT的左键时才移动,而在释放该键时才停止?

player_x = 10
player_y = 245
player_x_change = 0

clock = pygame.time.Clock()

while not gameExit:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            gameExit = True
        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_LEFT:
            player_x_change = -20 
            if event.key == pygame.K_RIGHT:
                player_x_change = 20

    player_x += player_x_change

You have to check KEYUP and change player_x_change 您必须检查KEYUP并更改player_x_change

while not gameExit:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            gameExit = True

        elif event.type == pygame.KEYDOWN:
            if event.key == pygame.K_LEFT:
                player_x_change = -20 
            elif event.key == pygame.K_RIGHT:
                player_x_change = 20

        elif event.type == pygame.KEYUP:
            if event.key in (pygame.K_LEFT,pygame.K_RIGHT):
                player_x_change = 0

EDIT: 编辑:

if you need to stop object when LEFT and RIGHT are pressed at the same time 如果您需要在同时按下LEFT和RIGHT时停止对象

player_x_change = 0

while not gameExit:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            gameExit = True

        elif event.type == pygame.KEYDOWN:
            if event.key == pygame.K_LEFT:
                player_x_change -= 20 
            elif event.key == pygame.K_RIGHT:
                player_x_change += 20

        elif event.type == pygame.KEYUP:
            if event.key == pygame.K_LEFT:
                player_x_change += 20 
            elif event.key == pygame.K_RIGHT:
                player_x_change -= 20

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM