Pygameは、ビデオゲームを作成するために設計されたクロスプラットフォームのPythonモジュールセットです。これには、Pythonプログラミング言語で使用するために設計されたコンピュータグラフィックスとサウンドライブラリが含まれています。[ 7 ]
Pygameは、開発が停滞したPySDLの代替として、もともとPete Shinnersによって書かれました。[ 2 ] [ 8 ] 2000年以来コミュニティプロジェクトであり[ 9 ] 、フリーソフトウェアのGNU Lesser General Public License [ 5 ]の下でリリースされています(このライセンスは「Pygameをオープンソースおよび商用ソフトウェアとともに配布することを規定している」[ 10 ])。
Pygame バージョン 2 は 2009 年に「Pygame Reloaded」として計画されましたが、Pygame の開発とメンテナンスはバージョン 1.9.1 で 2016 年末まで完全に停止していました。2019 年 3 月にバージョン 1.9.5 がリリースされた後、新しいバージョン 2 の開発がロードマップ上で活発になりました。[ 11 ]
Pygame 2.0は、Pygameの20周年記念日である2020年10月28日にリリースされました。[ 12 ]
Pygameは、C言語とその派生言語の低レベルな仕組みを使わずにリアルタイムのコンピュータゲーム開発を可能にする目的で、Simple DirectMedia Layer(SDL)ライブラリを使用しています。 [ a ]これは、ゲーム内で最も負荷の高い関数をゲームロジックから抽象化することで、Pythonなどの高レベルプログラミング言語を使用してゲームを構造化できるという前提に基づいています。[ 5 ]
SDLには、ベクトル演算、衝突検出、2Dスプライトシーングラフ管理、MIDIサポート、カメラ、ピクセル配列操作、変換、フィルタリング、高度なフリータイプフォントサポート、描画などの機能も備わっています。 [ 13 ]
Pygame を使用するアプリケーションは、Pygame Subset for Android (pgs4a) を使用することで、Android のスマートフォンやタブレットで実行できます。[ 14 ] Android では、サウンド、振動、キーボード、加速度計がサポートされています。[ 15 ]
元コア開発者とリポジトリ所有者との意見の相違を受けて、pygame-ce(コミュニティエディション)として知られるフォークが作成されました。[ 16 ]
Python (通常は Pygame だが必ずしもそうではない) を使ってゲームを作成する PyWeek と呼ばれる定期的なコンテストがあります。[ 17 ] [ 18 ] [ 19 ]コミュニティは Pygame のチュートリアルを多数作成しています。[ 20 ] [ 21 ] [ 22 ] [ 23 ] [ 24 ]
以下のコードは、アライグマの画像("raccoon.png"))が端に当たったときに跳ね返るようにします。
import pygame , syspygame.init ( ) screen = pygame.display.set_mode ( ( 1280 , 720 ) ) clock = pygame.time.Clock ( ) clock.tick ( 30 ) black = 0 , 0 , 0 raccoon = pygame.image.load ( " raccoon.png " ) raccoon = pygame.transform.scale ( raccoon , ( 200 , 140 ) ) raccoonrect = raccoon.get_rect ( ) velocity = [ 1 , 1 ]while True : raccoonrect = raccoonrect.move ( velocity ) if raccoonrect.left < 0 or raccoonrect.right > 1280 : velocity [ 0 ] = -velocity [ 0 ] raccoon = pygame.transform.flip ( raccoon , True , False ) if raccoonrect.top < 0 or raccoonrect.bottom > 720 : velocity [ 1 ] = -velocity [ 1 ] for event in pygame.event.get ( ) : if event.type == pygame.QUIT : sys.exit ( ) #画面の更新screen.fill ( black ) screen.blit ( raccoon , raccoonrect ) pygame.display.flip ( )