为什么我的blit时图像不会显示在屏幕上?

时间:2016-04-08 08:26:03

标签: python pygame blit

使用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()

1 个答案:

答案 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)从磁盘加载图像的另一个问题。只需加载一次图像即可。