2016-11-11 9 views
1

こんにちは、私はこれについて少し助けを得ることができるかと思っていました。私はPythonでClassesを学習していて、それを私の現在のuniプロジェクトに組み込むことを試みています。そこで、以下Pygame |ブリットされたイメージが全面的に飛び続ける

は、クラスのコードのように、だけでなく、それによって

class Asteroid(): 
    def __init__(self, char, startX, startY): 
     self.char = char 
     self.startX = startX 
     self.startY = startY 
     self.drawChar() 

    def drawChar (self): 
     self.space = pygame.image.load (self.char) 
     self.space = self.space.convert_alpha() 
     gameDisplay.blit(self.space, 
      (random.randint(0,display_width), 
      random.randint(0,display_height))) 

を使用し、いくつかの変数基本的に、このクラスは、私は「小惑星」にロードするために必要なすべてのデータを組み込んであります。

asteroid = [ 
    'Sprites/Asteroid1.png', 
    'Sprites/Asteroid2.png', 
    'Sprites/Asteroid3.png'] 

そこで起こる実際の問題である。また、以下の変数asteroidためのコードである

Asteroid(random.choice(asteroid),200,300) 

:以下

クラスが実際に使用されているメインコードの一部であります私がコードを実行すると、小惑星は表面に吹き飛ばされますが、彼らはどこにでもジャンプしています。それだけでなく、選択された小惑星ではなく、異なる小惑星がブライトされています。なぜこれが起こっているのですか?

小惑星にも白い背景がありますが、私はそれらを変換しようとしましたが、それは助けになりません。

+0

downvoteを取得した理由がわかりません。たとえそれがノービーなものであっても、正当な質問です。 –

答えて

1

あなたにそれを伝えるので。コード

gameDisplay.blit(self.space, 
      (random.randint(0,display_width), 
      random.randint(0,display_height))) 

文字通り「画像をランダムな場所で表示する」と言います。具体的には、random.randint(0,...)は、0から画面サイズまでランダムな位置を選択します。

この表示コードは、ゲームを開始するときだけでなく、画面を更新する必要があるたびに呼び出されることに注意してください。静的座標で表示するには、座標を静的にします。

gameDisplay.blit(self.space, (self.startX, self.startY)) 
+0

うわー、私はこれを知らなかった。申し訳ありませんが、もし私が愚かに見える、まだクラスのコンセプトを見て。白い背景を持つ私のイメージに関するアイデア? – Lucky38i

+1

この回答が役に立ったら、それを選択してください。白い背景は完全に別の問題ですので、別の質問をすることをお勧めします。 –

関連する問題