首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当按下两个键时,箭头键不对角移动pygame.surface

当按下两个键时,箭头键不对角移动pygame.surface
EN

Stack Overflow用户
提问于 2018-03-28 17:18:45
回答 2查看 465关注 0票数 2

我在MacBook Air上使用Pycharm上的python3。我以前也做过,目前正在做一些基本的游戏,使用游戏。由于某些原因,当我按住向下键向下,然后按右键,它会将玩家斜移到右边(这就是我喜欢的)。但是,当我向右移动,然后同时按up键时,它不会做这种行为。它不仅限于右/下键,它只是如果我移动球员向下/向上,同时按左/右,然后它移动对角线。然而,如果我移动球员的右/左,同时按上/下,那么它不会对角移动。

我认为这与pycharm、pygame或python处理键盘输入的方式有关,但我不确定。还有其他人有这些问题/烦恼吗?

代码语言:javascript
运行
复制
    def key_pressed(self):

        key_pressed = pygame.key.get_pressed()

        if key_pressed[pygame.K_RIGHT]:
            self.vx = 500

        elif key_pressed[pygame.K_LEFT]:
            self.vx = -500

        elif key_pressed[pygame.K_UP]:
            self.vy = -500

        elif key_pressed[pygame.K_DOWN]:
            self.vy = 500

        else:
            self.vy = 0
            self.vx = 0



    def update(self):
        self.rect.x += self.vx * self.game.dt
        self.rect.y += self.vy * self.game.dt


        self.key_pressed()
EN

Stack Overflow用户

发布于 2018-04-03 17:17:04

尝试用if语句替换elif语句,这样它就不会跳过任何键按:

代码语言:javascript
运行
复制
    if key_pressed[pygame.K_RIGHT]:
        self.vx = 500

    if key_pressed[pygame.K_LEFT]:
        self.vx = -500

    if key_pressed[pygame.K_UP]:
        self.vy = -500

    if key_pressed[pygame.K_DOWN]:
        self.vy = 500

    else:
        self.vy = 0
        self.vx = 0
票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49540581

复制
相关文章

相似问题

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