pygameライブラリーでの私の経験を教えて見せたいと思います。pygameライブラリーは、おそらくPythonでグラフィカルアプリケーション(ほとんどはアーケードゲーム)を実装するための優れたライブラリーです。 たとえば、(部分的に)Doodle Jumpゲームが実装されました。
免責事項
- はい、私は他の人の写真を使用しました-私は恥ずかしくて、すぐに修正します。
- キャラクターは今しかジャンプできませんが、ゲームを最後まで終わらせるつもりです。
- はい、アイデアは新しいものではありませんが、クールになりました。
- はい、ほとんどのナンセンス-ゲームを書くためにインタプリタ言語を使用します。
- 私はプロのプログラマーではなく、これは私の主な活動ではありません。
導入する代わりに
Python Pythonはドキュメントの点で優れています。 彼女は、彼女が理解できる、彼女は優れた例がないわけではありません。 Pygameも例外ではないので、このライブラリの実装の詳細については説明しないことをお勧めしますが、そのツールを使用して画像をロードし、xおよびyの周りを単純に移動できることに注意してください。 これ以上。
建築
OOPの最高の伝統でアプリケーションアーキテクチャを開発しようとします。 次のクラス図があります。
MVCモデルの支持者はすでに泣いています ロジックと表現はクラスの本体に組み込まれます。
3つの場所があります。
- StartLocation-メニューとゲームへの招待がここで回っています。
- GameLocation-サブジェクト自体。
- ExitLocation-出力、結果、ファンファーレ・オベーション。
プラットフォーム、ボタン、メインキャラクターなど、すべてのゲームオブジェクトが継承される基本的なSpriteオブジェクト。 スキームによれば、すべてが明確です。
キーポイント
イベント
def event(self, event): if event.type == QUIT: sys.exit() elif event.type == KEYUP: if event.key == K_ESCAPE: # do something if event.type == MOUSEMOTION: for btn in self.buttons: if btn.rect.collidepoint(pygame.mouse.get_pos()): #pass btn.changeState(1)
イベントメカニズムを使用すると、キーストロークとマウス操作が透過的に傍受されます。
画像
self.img_l = pygame.image.load('img/doodle_l.png').convert() self.image = self.img_l self.image.set_colorkey(self.image.get_at((0,0)), RLEACCEL) self.rect = self.image.get_rect() self.rect.center = (self.x,self.y)
スプライトの画像をロードします。
衝突
self.doodle.getLegsRect().colliderect(spr.getSurfaceRect())
coliderectメソッドは、スプライトに隣接する長方形が交差する場合にtrueを返します。
いくつかのスクリーンショット
藤堂
- ゲームプレイをする
- 新しいスプライトを描く
- 音を追加する
- 統計を追加する
- 正しいプラットフォーム位置アルゴリズム
- 矢印コントロールを追加
-
他に何?
あとがきの代わりに
pygameの知識は完全であると見なすことができます。doderはジャンプして生活を楽しんでいますが、同時にプロセッサの負荷は50〜70%になる傾向があり、これは話題ではありません。 それは何ですか、
githubのソース。