微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

pygame精灵即使按下键也不会移动

如何解决pygame精灵即使按下键也不会移动

我基本上是想用pygame制作游戏,但是遇到一个错误,其中计算机精灵正在移动,但我的精灵没有移动 代码

import pygame
pygame.init()
win = pygame.display.set_mode((1280,720))
pygame.display.set_caption("Game of Squares")
bluex = 100
bluey = 100
redX = 300
redY = 300
bluevel = 6
redVel = 4
run = True

def drawGame():
    win.fill((0,225,0))
    pygame.draw.rect(win,(0,255),(bluex,bluey,20,20))
    pygame.draw.rect(win,(255,0),(redX,redY,40,40))
    pygame.display.update()

while run:
    pygame.time.delay(100)

    if redX < bluex - 10:
        redX = redX + redVel
        drawGame()
    elif redX > bluex + 10:
        drawGame()
        redX = redX - redVel
    elif redY < bluey - 10:
        redY = redY + redVel
    elif redY > bluey + 10:
        redY = redY - redVel
    else:
        run = False

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False

    keys = pygame.key.get_pressed()

    if keys[pygame.K_LEFT]:
        bluex -= bluevel

    if keys[pygame.K_RIGHT]:
        bluex += bluevel

    if keys[pygame.K_UP]:
        bluey -= bluevel

    if keys[pygame.K_DOWN]:
        bluey += bluevel

    drawGame()

pygame.quit()

P.S:D-我在Macbook上,并使用Terminal作为外壳。当我按下按键进行游戏时,上面出现了一些奇怪的东西。

(base) AMITs-MacBook-Air:desktop amitkumar$ python game1.py
pygame 1.9.6
Hello from the pygame community. https://www.pygame.org/contribute.html
^[[B^[[B^[[C^[[D^[[A^[[C

解决方法

您正在使用的奇怪代码实际上是终端为箭头键发送的代码

有关详细信息,请参见答案:

Why does the terminal show "^[[A" "^[[B" "^[[C" "^[[D" when pressing the arrow keys in Ubuntu?

因此pygame永远不会获得pygames常数K_LEFT,K_RIGHT等中定义的期望值。

为便于检查,这是问题的实际根源,请使用字母键(而不是箭头键)移动精灵来进行检查。也许您可以按照上面的链接为Mac用户尝试将终端更改为bash吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。