2017-02-01 19 views

答えて

2

は、私はあなただけの用語について混乱してきていると思います。あなたはディスク上の画像を参照するために "スプライト"を使用していますが、それは単なる画像ファイルです。

screen.blit(rocket_img, (x, y)) 
  • スプライト

スプライト:あなたは、その後であなたが望む任意の場所にこのイメージを描くことができます

rocket_img = pygame.image.load('rocket.png').convert_alpha() 

:あなたのロケット例を使用するには、このようなイメージをロードしますPygameには組み込みの機能がすべて組み込まれたオブジェクトがあります。 Sprites にはの画像がありますが、その多くはもっとたくさんあります。さらに、スプライトをグループにまとめることで、更新や描画が容易になります。スプライトには、衝突機能が組み込まれています。位置、速度、アニメーションなどを追跡する独自のプロパティを追加できます。

シンプルスプライト:

class Rocket(pygame.sprite.Sprite): 
    def __init__(self): 
     pygame.sprite.Sprite.__init__(self) 
     self.image = pygame.image.load('rocket.png').convert_alpha() 
     self.rect = self.image.get_rect() 

    def update(self): 
     self.rect.x += 1 

これはあなたが

screen.blit(rocket.image, rocket.rect) 

を使って描くことができ、それはゆっくりと動く

rocket = Rocket() 

を使用してインスタンス化しますロケットスプライトだろう右へ(ゲームループでupdate()を呼び出すと:

rocket.update() 

スプライトのドキュメントを見ることをお勧めします。スプライトをたくさん使って作業することが非常に簡単になるように、グループでもっとたくさんのことができます。ディスク上の画像ファイルを扱うために使用されている「画像」 -

http://www.pygame.org/docs/ref/sprite.html

+1

は、pygameの内部で、ピクセルを保持しているオブジェクトは、「表面」と呼ばれていることに注意してください。 – jsbueno

+0

確かに、説明をいただきありがとうございます。 – Chris

0

「イメージ」は一般に画像ファイルのみを参照します:イメージファイルをインポートしてディスクにエクスポートすることです。ピクセルを保持するPythonオブジェクトである "Surface"オブジェクトがあり、他のサーフェスにスタンプを付けたり、変形(回転/回転)したり、他のサーフェスを生成したりすることができます。

メイン画面自体はSurfaceサブクラスなので、ディスクイメージから読み取られたデータをSurfaceにスタンプするときは、blitメソッドを使用してイメージが画面に表示されます。

スプライトは、ゲーム内のオブジェクトの基本クラスであり、ピクセルデータが添付されていることに依存しない場合もあります。 Pygame APIの中には、Spriteオブジェクトがrect属性を持つことが必要であり、これはサーフェスでレンダリングされる位置とimage属性を表します。それが使用される場合、sprite.image属性はサーフェスオブジェクトを保持する必要があります。通常、ディスクから読み込みます(ただし、プログラムで描画されている可能性があります)。

スプライトイメージ属性を使用する主な呼び出しは、Group.draw()メソッドです。

しかし、対話型のゲームとはまったく異なるゲームを作成することは可能です。たとえば、スプライトやグループのクラスを使用して、画面上に何も置かずに、MMOゲームのサーバー側となるゲームを作成することはできません。スプライト上のimage属性の使用。

ワース読書: https://www.pygame.org/docs/ref/sprite.html

逆に、あなたはスプライトとグループが提供するすべてのヘルパーのロジックをバイパスし、しかサーフェスオブジェクトを持つことになりますゲームを作成することができます - ディスクから読み取った画像を表すを。追跡する責任があるのは、spriteグループのelpeメソッドを使用せずに、それらを描画するタイミングと時間です。画像は、ピクセルの単なる集合体である

  • 画像:

関連する問題