2016-12-07 33 views
0

プロジェクトでは、パイグムを使ってビデオゲームを作成しなければならず、自分の背景イメージに問題があります。私はそれを私の選手の背後に表示することはできませんし、スコア。 screen.blitを使うべきか、screen.fillを使うべきですか?どんな助けもありがたい。パイゲームに背景画像を追加しますか?

import pygame 
import random 
import sys 
pygame.mixer.pre_init(44100, -16, 2, 2048) 

pygame.init() 

pygame.mixer.music.load('grand-metropolis.mp3') 
pygame.mixer.music.play() 
pygame.mixer.music.set_volume(0.7) 


SCR_WID, SCR_HEI = 640, 480 
screen = pygame.display.set_mode((SCR_WID,SCR_HEI), 0, 16) 
pygame.display.set_caption("Ever Emerald") 
font = pygame.font.SysFont("white", 32) 

bg = pygame.image.load("sddefault.jpg") 


class Player(): 
     def __init__(self, SCR_WID, SCR_HEI,): 

       self.x, self.y = SCR_WID, SCR_HEI/2 
       self.speed = 3 
       self.padWid, self.padHei = 8, 64 
       self.score = 0 
       self.scoreFont = pygame.font.Font("imagine_font.ttf", 64) 

     def scoring(self, screen, cord, winner): 

       scoreBlit = self.scoreFont.render(str(self.score), 1, (255, 255, 255)) 
       screen.blit(scoreBlit, (cord, 16)) 

       if self.score == 10: 
         print (winner) 
         exit() 

     def movement(self, up, down): 

       keys = pygame.key.get_pressed() 
       if keys[up]: 
         self.y -= self.speed 
       elif keys[down]: 
         self.y += self.speed 

       if self.y <= 0: 
         self.y = 0 
       elif self.y >= SCR_HEI-64: 
         self.y = SCR_HEI-64 

     def draw(self, screen): 
       pygame.draw.rect(screen, (255, 255, 255), (self.x, self.y, self.padWid, self.padHei)) 
       screen.blit(bg, (640,380)) 
+0

screen.blitの使用 – Qwerty

答えて

1

これは単なる図面の順序です。

この擬似コードを見てください。

Draw player. 
Draw background. 
# Player is not visible. 

Draw background. 
Draw player 
# Desired output 
0
def draw(self, screen): 
    screen.blit(bg, (640,380)) 
    pygame.draw.rect(screen, (255, 255, 255), (self.x, self.y, self.padWid, self.padHei)) 

私はあなたのコードを多く分析することができませんでしたが、これで問題は解決します。

コンピュータに画像をblitするように指示すると、画像の背景に関係なく画像がブリットされます。それは気にしない。あなたはそこにイメージを置くように言ったので、そこにイメージを置くつもりです。あなたは最初に選手を表示しました。ここに問題はありません。しかし、あなたはプレイヤーを表示した後で背景を表示するように指示しました。これは、背後にあるものに関係なく、バックグラウンド画面を表示します。

http://www.pygame.org/docs/ref/surface.html#pygame.Surface.blit

関連する問題