0

启动程序时看不到图像。我有一个名为“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()  

谢谢你。

4

3 回答 3

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 都发生在内部缓冲区中,您需要每帧调用一次翻转或更新来更新真实屏幕。

于 2012-12-08T19:35:39.637 回答
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)

我建议尽可能使用相对路径,它可以保持代码的可移植性,并使其更易于维护和分发。

于 2012-12-08T00:30:26.773 回答
0

我知道了!使用 pygame 重要的是pygame.display.update()while True:screen.flip 中使用“”来刷新或更新屏幕。感谢之前回复的用户。

完整代码:

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()
于 2012-12-09T04:20:43.757 回答