繁体   English   中英

在Pygame KEYDOWN上需要帮助

[英]Need help on Pygame KEYDOWN

只是在寻求帮助,

如何调整此设置,使角色仅在按住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

您必须检查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

编辑:

如果您需要在同时按下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