用Pygame显示东西的问题

时间:2020-03-02 23:28:41

标签: python pygame

基本上,我希望通过wasd键在屏幕上移动一个矩形。弹出窗口,然后立即关闭,我不知道为什么。我不知道这与我的其他图片有什么不同-显示代码。

256

1 个答案:

答案 0 :(得分:2)

您必须运行main()

要移动对象,最好使用pygame.key.get_pressed()。使用event,您将不得不一次又一次地按键或以不同的方式书写。

使用get_pressed()时,您必须使用if而不是elif,因为它可以同时为多个键使用True

import pygame

pygame.init()

white = (255, 255, 255)
black = (0, 0, 0)

X = 1000
Y = 800

display_surface = pygame.display.set_mode((X, Y))

pygame.display.set_caption('Image')

def main():
    px = X/2
    py = Y/2

    while True:

        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                pygame.quit()
                quit()
            #elif event.type == pygame.KEYDOWN:                
            #    if event.key == pygame.K_w:
            #        py += 5

        keys = pygame.key.get_pressed()

        if keys[pygame.K_w]:
            py -= 5
        if keys[pygame.K_a]:
            px -= 5
        if keys[pygame.K_s]:
            py += 5
        if keys[pygame.K_d]:
            px += 5

        display_surface.fill(white)
        pygame.draw.rect(display_surface, black, (px, py, 25, 25))
        pygame.display.update()

main()