如何在Pygame中将图像“ blit”到屏幕上

时间:2019-08-19 04:51:38

标签: python pygame

我正在做一个游戏分析器,我认为如果我有一个用户iterface而不是仅仅使用文本和原始输入进行交流,那会很好。我在将图像“拖影”到屏幕时遇到问题。

我的图片和我的代码都在名为“ CATANYLISER”的pycharm文件中。

import pygame
pygame.init()


# py-game variables
(width, height) = (1000, 600)
window = pygame.display.set_mode((width, height))
window_title = pygame.display.set_caption('the CATANALYSER')
does_quit = False

# py-game images
empty_board = pygame.image.load('empty_board.png')


# py-game window loop
while not does_quit:

    # receives input from window
    for event in pygame.event.get():

        # stops program when red x clicked
        if event.type == pygame.QUIT:
            does_quit = True

    window.blit(empty_board, (0, 0))

    pygame.display.update()

# activates when the loop finishes, just makes sure everything shuts down properly
pygame.quit()

预期结果是屏幕左上角的图像。但是,当我运行该程序时,我有一个空白屏幕(pygame.QUIT仍然有效)。

运行此代码时,没有错误消息,而我完全迷失了解决方法。

1 个答案:

答案 0 :(得分:1)

首先,确保empty_board.png在您的工作目录中。

第二,您必须使用window.fill([255, 255, 255])

在每一帧之前清除屏幕

最后,您可以尝试使用pygame.display.flip()而不是update()

我的代码如下:

import pygame
pygame.init()

window = pygame.display.set_mode([640, 480])
doQuit = False

board = pygame.image.load("empty_board.png")

while not doQuit:
   window.fill([255, 255, 255])
   window.blit(board, (0, 0))
   pygame.display.flip()
   for event in pygame.event.get():
       if event.type == pygame.QUIT:
           doQuit = True

pygame.quit()