繁体   English   中英

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

[英]Pygame sprite not moving even after pressing the keys

我基本上是在尝试从 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, 0, 255), (bluex, bluey, 20, 20))
    pygame.draw.rect(win, (255, 0, 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()

PS :D- 我在 macbook 上并使用终端作为外壳当我按下键玩游戏时,它出现了一些奇怪的东西。

(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

您看到的奇怪代码实际上是终端为箭头键发送的代码

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

为什么在Ubuntu中按方向键时终端显示“^[[A”“^[[B”“^[[C”“^[[D”?

因此 pygame 永远不会得到 pygames 常量 K_LEFT、K_RIGHT 等中定义的预期值。

为了轻松检查它是问题的实际根源,请使用字母键而不是箭头键来移动您的精灵来检查。 也许您可以尝试按照上面针对 mac 用户的链接中的建议将终端更改为 bash?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM