启动程序时无法看到图像。我有一个名为“game”和“mygame.py”文件夹的文件夹,其中包含“background.png”。我已经尝试使用PATH“/game/background.png”而不是“background.png”但它似乎不起作用。有任何想法吗?
我的代码:
import pygame , sys
pygame.init()
#screen start
def screen():
screen = [1024,768]
screen = pygame.display.set_mode(screen,0,32)
pygame.display.set_caption("Testing Caption")
background = pygame.image.load("background.png")
screen.blit(background, (0,0))
while True:
screen.blit(background, (0,0))
#keyboard commands
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
screen()
谢谢。
答案 0 :(得分:2)
您缺少翻转/更新通话:
clock = pygame.time.Clock()
while True:
#keyboard commands
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
screen.blit(background, (0,0))
pygame.display.flip()
clock.tick(40) # keep program running at given FPS
每个blit都发生在内部缓冲区中,你需要每帧调用一次翻转或更新一次以更新真实屏幕。
答案 1 :(得分:1)
据我所知,你可以通过以下两种方式完成这项工作。
您可以使用文件的绝对路径,例如:
"C:\path_to_game_folder\game\background.png"
或者您可以使用相对路径。为此,请将以下代码添加到您的程序中:
import os
dir = os.path.dirname(__file__)
backgroundFile = os.path.join(dir, "background.png")
并改变:
pygame.image.load("background.png")
到
pygame.image.load(backgroundFile)
我建议尽可能使用相对路径,使代码保持可移植性,并使其更易于维护和分发。
答案 2 :(得分:0)
我明白了!使用pygame很重要,在pygame.display.update()
screen.flip中使用“while True:
”不能与pygame一起刷新或更新屏幕。感谢之前回复的用户。
完整代码:
import pygame , sys
pygame.init()
#screen start
def screen():
width , height = 1280,768
screen = pygame.display.set_mode((width,height))
pygame.display.set_caption("Testing Caption")
background = pygame.image.load("background.jpg")
screen.blit(background, (0,0))
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
screen.blit(background, (0,0))
pygame.display.update()
screen()