2016-04-08 4 views
-1

Python(およびPygame)を使用して、私は短い1画面のゲームを作成しており、それぞれの部分を別のウィンドウでコーディングしています。ホーム画面で、再生ボタンを画面に合わせると表示されません。私はPythonとPygameが初めてです。これは私のコードです:フレデリック・ハミディはすでにコメントで述べたように、あなたはおそらく期待どおり私はそれをblitするときに画面に画像が表示されないのはなぜですか?

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

'if background == pygame.image.load(" Home Screen.png ")'。私はあなたがそうしたイメージを比較することはできないと確信しています。 –

答えて

2

に、

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)。各画像を一度読み込むだけで十分です。

+0

ありがとうございますが、私は完全に理解していませんので、コード全体を入力してください。再度、感謝します。 – Jetter126

関連する問題