首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >paddle对象在pong中的平滑按键事件

paddle对象在pong中的平滑按键事件
EN

Stack Overflow用户
提问于 2017-11-30 04:03:47
回答 1查看 31关注 0票数 0

我在试着在我的乒乓球比赛中使我的球拍动作更流畅。我的player_paddle1运行平稳,只要我松开钥匙就会停下来。然而,我的另一个player_paddle2,它结合了相同的按键算法,具有另一个paddle,但没有这样做。即使我释放了密钥,它也会继续运行。

代码语言:javascript
复制
        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键反应不太灵敏,这意味着按下键不会立即导致划桨运动。我该如何解决这个问题呢?

EN

回答 1

Stack Overflow用户

发布于 2017-11-30 04:11:34

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

此外,你不需要查看player_paddle2.direction

代码语言:javascript
复制
        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

它可以更短

代码语言:javascript
复制
        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 

顺便说一句:你可以在某些地方使用elif

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47560867

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档