如何使游戏角色(用户)平稳移动?

问题描述 投票:1回答:1

在我的游戏中,我将角色移动。设置方法是:

if game_over_state == False:
    if event.type == pygame.KEYDOWN:
        if event.key == pygame.K_ESCAPE:
            pause = True
            game_paused()
        if event.key == pygame.K_LEFT:
            player_x_change = -2
        if event.key == pygame.K_RIGHT:
            player_x_change = 2
        if event.key == pygame.K_UP:
            player_y_change = -2
        if event.key == pygame.K_DOWN:
            player_y_change = 2

    if event.type == pygame.KEYUP:
        if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT
            player_x_change = 0
        if event.type == pygame.KEYUP:
            player_y_change = 0

是否可以将其更改为while函数或其他方式,以便在释放箭头键(即使按住另一个箭头键时)时角色也不会停止移动?

python-3.x pygame pycharm
1个回答
1
投票
[...]因此,释放箭头键时角色不会停止移动[...]
当然,请不要在player_x_change事件中重置player_y_changeKEYUP

if game_over_state == False: if event.type == pygame.KEYDOWN: if event.key == pygame.K_ESCAPE: pause = True game_paused() if event.key == pygame.K_LEFT: player_x_change = -2 if event.key == pygame.K_RIGHT: player_x_change = 2 if event.key == pygame.K_UP: player_y_change = -2 if event.key == pygame.K_DOWN: player_y_change = 2 # DELETE #if event.type == pygame.KEYUP: # if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT # player_x_change = 0 # if event.type == pygame.KEYUP: # player_y_change = 0

注意,如果您不分别更改player_x_change的状态player_y_change,则player_x_change取决于最后按下的

LEFT / 

RIGHT,而player_y_change取决于最后按下的UP / DOWN键。

注意,如果您希望角色仅沿一个方向(左,右,上或下)移动,则必须设置player_x_changeplayer_y_change。例如:]]
if game_over_state == False: if event.type == pygame.KEYDOWN: if event.key == pygame.K_ESCAPE: pause = True game_paused() if event.key == pygame.K_LEFT: player_x_change, player_y_change = -2, 0 if event.key == pygame.K_RIGHT: player_x_change, player_y_change = 2, 0 if event.key == pygame.K_UP: player_x_change, player_y_change = 0, -2 if event.key == pygame.K_DOWN: player_x_change, player_y_change = 0, 2
© www.soinside.com 2019 - 2024. All rights reserved.