移动鼠标时,我的Pygame脚本使我的角色在屏幕上暂停

时间:2017-07-02 21:05:12

标签: pygame

我想在pygame中制作一个简单的游戏,我用WASD键移动角色(正方形)。我已经有所成就,但运动并不顺畅,当我移动鼠标时,角色拒绝移动。

我认为这与我的for循环

有关
    for event in pygame.event.get():
        if event.type is pygame.QUIT:
            pygame.quit()
            sys.exit()

我知道它存在于循环中但有输入但我不确定如何修复它而不能关闭程序。

这是主要的游戏循环:

while launchGame:
    for event in pygame.event.get():
        if event.type is pygame.QUIT:
            pygame.quit()
            sys.exit()
    screen.fill(WHITE)
    player.draw()
    player.move()
    pygame.display.flip()

如果有帮助的话,这是我的移动脚本:

    def move(self):
    if event.type == pygame.KEYDOWN:
        if pygame.key.get_pressed()[K_w]:
            self.y -= self.speed
        if pygame.key.get_pressed()[K_s]:
            self.y += self.speed
        if pygame.key.get_pressed()[K_a]:
            self.x -= self.speed
        if pygame.key.get_pressed()[K_d]:
            self.x += self.speed

我该如何解决这个问题。

2 个答案:

答案 0 :(得分:0)

这是一个简单的错字。在第二行,您有if event.type is pygame.QUIT:

应该是if event.type == pygame.QUIT:

如果这不起作用,请尝试:

while RUNNING:
    for event in pygame.event.get():
        if event.type is pygame.QUIT:
            RUNNING = False;
    screen.fill(WHITE)
    player.draw()
    player.move()
    pygame.display.flip()

从命令行运行程序,查看pycharm是否存在问题

答案 1 :(得分:0)

我发现了问题。 event.type == pygame.KEYDOWN我不需要:如果我使用pygame.key.get_pressed()因为它不是事件函数。

谢谢,但不,谢谢我猜xD