pong中的桨对象的键盘事件更加平滑



我试图在乒乓球比赛中使桨动作更加顺畅。我的player_paddle1具有平稳的动作,每当我放开钥匙时,都会停止。但是,我的另一个player_paddle2(包含相同的按键算法的另一个桨)没有这样做。即使我释放钥匙,它也会继续前进。

        if game_option == "Two Player":
            if event.type == KEYDOWN:
                if event.key == K_UP:
                    player_paddle1.direction = -1
                elif event.key == K_DOWN:
                    player_paddle1.direction = 1
                if event.key == K_w:
                    player_paddle2.direction = -1
                elif event.key == K_s:
                    player_paddle2.direction = 1
            if event.type == KEYUP:
                if event.key == K_UP and player_paddle1.direction == -1:
                    player_paddle1.direction = 0
                elif event.key == K_DOWN and player_paddle1.direction == 1:
                    player_paddle1.direction = 0
                if event.key == K_UP and player_paddle2.direction == -1:
                    print("The key is now up!")
                    player_paddle2.direction = 0 
                elif event.key == K_UP and player_paddle2.direction == 1:
                    player_paddle2.direction = 0

此外,尽管向上和向下的键非常响应,但W和S键不太响应,这意味着,键盘不会立即导致桨运动。我该如何解决?

您检查了KEYUP中的第二个播放器的K_UP,但必须是K_wK_s

此外,您不必检查player_paddle2.direction

        if event.type == KEYUP:
            if event.key == K_UP:
                player_paddle1.direction = 0
            elif event.key == K_DOWN:
                player_paddle1.direction = 0
            elif event.key == K_w: # <-- there was K_UP
                print("The key is now up!")
                player_paddle2.direction = 0 
            elif event.key == K_s: # <-- there was K_UP
                player_paddle2.direction = 0

可以短

        elif event.type == KEYUP:
            if event.key in (K_UP, K_DOWN)
                player_paddle1.direction = 0
            elif event.key in (K_w, K_s):
                player_paddle2.direction = 0 

btw:您可以在某些地方使用elif

最新更新