使用Python(和Pygame),我一直在创建一个简短的单屏游戏,我在不同的窗口中编写每个部分。在我的主屏幕中,当我将播放按钮blit到屏幕上时,它不会出现。我是Python和Pygame的新手。这是我的代码:
import pygame, sys
from pygame.locals import *
pygame.init()
screen = pygame.display.set_mode((1352,638))
pygame.display.set_caption("Termination: Part 1")
bg = True
playButton = pygame.image.load("Play Button.png")
mouse = pygame.mouse.get_pos()
def playButtonFunction():
if background == pygame.image.load("Home Screen.png"):
background.blit(playButton(533.5,278))
while True:
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()
if event.type == KEYDOWN and event.key == K_SPACE:
bg = False
screen.blit(background,(0,0))
if bg:
background = pygame.image.load("Intro Screen.png")
else:
background = pygame.image.load("Home Screen.png")
playButtonFunction()
pygame.display.update()
答案 0 :(得分:2)
FrédéricHamidi已经在评论中说了这句话
if background == pygame.image.load("Home Screen.png")
将无法正常工作。
当您不想显示playButton
图像时,您应该可能会将标记传递给该方法,或者根本不调用该函数。
此外,该行
background.blit(playButton(533.5,278))
将抛出异常,它应该看起来像
background.blit(playButton, (533, 278))
所以,将代码更改为
...
if bg:
background = pygame.image.load("Intro Screen.png")
else:
background = pygame.image.load("Home Screen.png")
screen.blit(background,(0,0))
if !bg:
background.blit(playButton, (533, 278))
...
在游戏循环的每次迭代中使用pygame.image.load
)从磁盘加载图像的另一个问题。只需加载一次图像即可。