PythonによるPygameゲームプログラミングの詳細な説明

1. はじめに

1.1 定義

Pygame は、開発者が 2D ゲームを簡単に作成できるようにする多くの機能を提供する人気の Python ゲーム開発ライブラリです。優れたクロスプラットフォームのサポートがあり、Windows、MacOS、Linux などの複数のオペレーティング システム上で実行できます。この記事では、Pygame ライブラリをゲーム開発に使用する方法を理解するために、Pygame ライブラリの特徴と使い方を紹介します。画像モジュール(イメージ)、サウンドモジュール(ミキサー)、入出力(マウス、キーボード、ディスプレイ)モジュールなど、多くの操作モジュールを提供します。

官方地址:https://www.pygame.org/

1.2 関連機能

1) pygame.sprite ゲーム画像を表す高レベルのオブジェクト

pygame.sprite.Sprite: 表示されるゲーム オブジェクトの単純な基本クラス。
pygame.sprite.WeakSprite: Sprite のサブクラス、そのグループへの弱参照。これは、そのグループが属しているグループが他の場所で参照されていない場合、そのグループが自動的にガベージ コレクションされることを意味します。
pygame.sprite.DirtySprite: より多くのプロパティと関数を備えた Sprite のサブクラス。
pygame.sprite.Group: 複数の Sprite オブジェクトを保存および管理するために使用されるコンテナ クラス。
pygame.sprite.WeakDirtySprite: WeakSprite と DirtySprite のサブクラスで、これら 2 つのクラスの利点を組み合わせたものです。
pygame.sprite.RenderPlain: pygame.sprite.Group と同じ
pygame.sprite.RenderClear: pygame.sprite.Group と同じ
pygame.sprite.RenderUpdates: ダーティ アップデートを追跡するためのグループ サブクラス。
pygame.sprite.OrderedUpdates: RenderUpdates サブクラス。追加された順序でスプライトを描画します。
pygame.sprite.LayeredUpdates: LayeredUpdates は、OrderedUpdates と同様にレイヤーと描画を処理するスプライト グループです。
pygame.sprite.LayeredDirty: LayeredDirty グループは DirtySprite オブジェクトに適用されます。 LayeredUpdates をサブクラス化します。
pygame.sprite.GroupSingle: 単一のスプライトを保持するグループ コンテナです。
pygame.sprite.spritecollide: グループ内で別のスプライトと交差するスプライトを検索します。
pygame.sprite.collide_rect: 長方形を使用して 2 つのスプライト間の衝突を検出します。
pygame.sprite.collide_rect_ratio: 比例的にスケールされた長方形を使用して、2 つのスプライト間の衝突を検出します。
pygame.sprite.collide_circle: 円を使用して 2 つのスプライト間の衝突を検出します。
pygame.sprite.collide_circle_system: スケールされた円を使用して 2 つのスプライト間の衝突を検出します。
pygame.sprite.collide_mask: マスクを使用して 2 つのスプライト間の衝突を検出します。
pygame.sprite.groupcollide: 2 つのグループ間で衝突したすべてのスプライトを検索します。
pygame.sprite.spritecollideany: スプライトがグループ内の何かと交差するかどうかを簡単にテストします。

2)pygame.Surface 画像と画面オブジェクト

pygame.Surface.blit: 1 つの画像を別の画像上に描画します
pygame.Surface.blitz: 多数の画像を別の画像上に描画します
pygame.Surface .convert: 画像のピクセル形式を変更します
pygame.Surface.convert_alpha: ピクセルごとのアルファを含む画像のピクセル形式を変更します
pygame.Surface .copy: Surface の新しいコピーを作成します
pygame.Surface.fill: サーフェスを単色で塗りつぶします
pygame.Surface.scroll: サーフェス イメージを移動しますインプレイス
pygame.Surface.set_colorkey: 透明カラー キーを設定します。
pygame.Surface.get_colorkey: 現在の透明カラー キーを取得します。
pygame .Surface.set_alpha: 完全な Surface イメージのアルファ値を設定します
pygame.Surface.get_alpha: 現在の Surface の透明度値を取得します
pygame.Surface .lock: ピクセル アクセスに対して Surface メモリをロックする
pygame.Surface.unlock: Surface メモリをピクセル アクセスからロック解除する
pygame.Surface.mustlock: Surface が次のことを行う必要があるかどうかをテストします。ロックされる
pygame.Surface.get_locked: Surface が現在ロックされているかどうかをテストする
pygame.Surface.get_locks: Surface のロックを取得する
pygame.Surface.get_at : 単一ピクセルのカラー値を取得します
pygame.Surface.set_at: 単一ピクセルのカラー値を設定します
pygame。 Surface.get_at_mapped: 単一ピクセルでマップされたカラーを取得します。 値
pygame.Surface.get_palette: 8 ビット Surface
pygame のカラー インデックス パレットを取得します。 Surface.get_palette_at: パレット内の 1 つのエントリの色を取得します
pygame.Surface.set_palette: 8 ビット Surface のパレットを設定します
pygame.Surface .set_palette_at: 8 ビット Surface パレットの単一インデックスの色を設定します
pygame.Surface.map_rgb: 色をマップされた色の値に変換します
pygame.Surface .unmap_rgb: マップされた整数のカラー値を Color
に変換します pygame.Surface.set_clip: Surface の現在のクリッピング領域を設定します
pygame.Surface.get_clip: 取得Surface の現在のクリッピング領域
pygame.Surface.subsurface: 親を参照する新しいサーフェスを作成します
pygame.Surface.get_parent: サブサーフェイスの親を検索します
pygame.Surface.get_abs_parent: サブサーフェスの最上位の親を検索します
pygame.Surface.get_offset: 親内のサブサーフェスの位置を検索します< /span> pygame.Surface.premul_alpha: アルファ チャネルが事前に乗算された RGB チャネルを含むサーフェスのコピーを返します。 。 pygame.Surface._pixels_address: ピクセル バッファ アドレス pygame.Surface.get_buffer: Surface ピクセルのバッファ オブジェクトを取得します。 pygame.Surface.get_view: Surface ピクセルのバッファー ビューを返します。 pygame.Surface.get_bounding_rect : データを含む最小の四角形を見つけます pygame.Surface.get_losses: カラーとマップされた整数間の変換に必要な有効ビット pygame.Surface.set_shifts:カラーとマップされた整数間の変換に必要なビット シフトを設定します pygame.Surface.get_shifts : カラーとマップされた整数間の変換に必要なビット シフト pygame.Surface.set_masks:カラーとマップされた整数間の変換に必要なビットマスク pygame.Surface.get_masks: カラーとマップされた整数の間で変換します。 必要なビットマスク pygame.Surface.get_pitch: Surface の各行で使用されるバイト数を取得します。 pygame.Surface.get_flags: Surface の追加フラグに使用される数を取得します pygame.Surface。 get_bytesize: 各 Surface ピクセルで使用されるバイト数を取得します pygame.Surface.get_bitsize: ピクセル形式の Surface ビット深度を取得します pygame.Surface.get_rect: Surface の長方形領域を取得します pygame.Surface.get_height: Surface の高さを取得する pygame.Surface.get_width: Surface の幅を取得する pygame.Surface.get_size: のサイズを取得します。 Surface
pygame.Surface.get_abs_offset: 最上位レベル内のサブサーフェスの位置を検索します。 親サーフェス内の絶対位置

















3)pygame.surfarray 画像のピクセル データを操作する 

pygame.surfarray.array2d: ピクセルを 2 次元配列にコピーします
pygame.surfarray.pixels2d: 参照ピクセルを 2 次元配列に配置します
pygame.surfarray.array3d: ピクセルを 3D 配列にコピーします
pygame.surfarray.pixels3d: 参照ピクセルを 3D 配列に配置します
pygame.surfarray .array_alpha: コピーピクセル アルファを 2 次元配列に変換します
pygame.surfarray.pixels_alpha: ピクセル アルファを 2 次元配列に参照します
pygame.surfarray.array_red : 赤いピクセルをコピーします2 次元配列に
pygame.surfarray.pixels_red: 赤の参照ピクセルを 2 次元配列に配置します。
pygame.surfarray.array_green: 緑のピクセルを 2D 配列にコピーします。
pygame.surfarray.pixels_green: 緑の参照ピクセルを 2D 配列にコピーします。
pygame.surfarray.array_blue: 青色のピクセルを 2D 配列にコピーします。
pygame.surfarray.pixels_blue: 青色の参照ピクセルを 2D 配列の中央にコピーします。
pygame.surfarray.array_colorkey: カラーキー値を 2 次元配列にコピーします
pygame.surfarray.make_surface: 配列を新しいサーフェスにコピーします< a i=14> pygame.surfarray.blit_array: 配列値から直接ブリットする pygame.surfarray.map_array: 3 次元配列を 2 次元配列にマッピングする pygame.surfarray .use_arraytype: サーフェス配列に使用される配列システムを設定します pygame.surfarray.get_arraytype: 現在アクティブな配列タイプを取得します。 pygame.surfarray.get_arraytypes: 現在サポートされている配列システム タイプを取得します。




4)python pygame の主要な機能を管理する

pygame.init: インポートされたすべての pygame モジュールを初期化します
pygame.quit: すべての pygame モジュールを初期化しない
pygame.get_init: pygame が現在初期化されている場合、 True を返します
pygame.error: 標準の pygame 例外
pygame.get_error: 現在のエラー情報を取得します
pygame.set_error :現在のエラー メッセージを設定します。
pygame.get_sdl_version: SDL のバージョン番号を取得します。
pygame.get_sdl_byteorder: SDL のバイト オーダーを取得します。
pygame.register_quit: pygame の終了時に呼び出される関数を登録します
pygame.encode_string: Unicode またはバイト オブジェクトをエンコードします
pygame.encode_file_path: Unicode またはバイトを変換しますファイル システム パスとしてエンコードされたオブジェクトからバイトへのオブジェクト

 5)pygame.BufferProxy サーフェス ピクセルの配列プロトコル ビュー

このクラスは、配列プロトコルを通じてエクスポートされたバッファ オブジェクト サーフェス  オブジェクトです

pygame.BufferProxy.parent: BufferProxy の Surface オブジェクト、または BufferProxy を呼び出すオブジェクトを返します。
pygame.BufferProxy.length: バッファの長さをバイト単位で返します。 len フィールドと同様
pygame.BufferProxy.length: バッファ データをコピーして、str または bytes オブジェクトとして返します。
pygame.BufferProxy.write: 単語をコピーします。セクション書き込みバッファ

6)pygame.Color 颜色表示

このクラスはpygameで色を記述するために使用されるモジュールです

pygame.Color.r: Color の赤色の値を取得または設定します。
pygame.Color.g: Color の緑色の値を取得または設定します。
pygame.Color.b: Color の青の値を取得または設定します。
pygame.Color.a: カラーのアルファ値を取得または設定します。
pygame.Color.cmy: カラーの CMY 表現を取得または設定します。
pygame.Color.white: Color の HSVA 表現を取得または設定します。
pygame.Color.hsla: Color の HSLA 表現を取得または設定します。
pygame.Color.i1i2i3: Color の I1I2I3 表現を取得または設定します。
pygame.Color.normalize: 色の正規化された RGBA 値を返します。
pygame.Color.Correct_gamma: 特定のガンマ値を色に適用します。
pygame.Color.set_length: Color の要素の数を 1、2、3、または 4 に設定します。
pygame.Color.grayscale: 色のグレースケールを返します。
pygame.Color.lerp: 指定された色の線形補間を返します。
pygame.Color.premul_alpha: r、g、b コンポーネントにアルファを乗算したカラーを返します。
pygame.Color.update: カラー要素を設定する

7)pygame.cursors カーソル イメージのロードとコンパイル

pygame.cursors.compile: 単純な文字列からバイナリ カーソル データを作成する
pygame.cursors.load_xbm: XBM ファイルからカーソル データをロードする
pygame .cursors.Cursor: カーソルを表す pygame オブジェクト

8)pygame.display 配置显示表面 

pygame.display.init: 表示モジュールの初期化
pygame.display.quit: 表示モジュールの初期化をキャンセルします
pygame.display。 get_init: 表示されている場合 モジュールが初期化されている場合は True を返します
pygame.display.set_mode: ウィンドウまたは画面を表示用に初期化します
pygame.display.get_surface : 現在設定されている表示サーフェスを取得します。 参照
pygame.display.flip: Surface の表示全体を画面に更新します。
pygame.display.update: 一部を更新します。ソフトウェアによって表示される画面< a i=7> pygame.display.get_driver: pygame ディスプレイ バックエンドの名前を取得します pygame.display.Info: ビデオ表示情報オブジェクトを作成します pygame.display.get_wm_info : 現在のウィンドウ システムに関する情報を取得します。 pygame.display.get_desktop_sizes: アクティブなデスクトップのサイズを取得します。 pygame.display.list_modes: 利用可能な全画面モードのリストを取得します pygame.display.mode_ok: 表示モードに最適な色深度を選択します pygame.display.gl_get_attribute: 現在のモニターの OpenGL フラグの値を取得します< a i=14> pygame.display.gl_set_attribute: 表示モードの OpenGL 表示属性をリクエストします pygame.display.get_active: 画面上のディスプレイがアクティブな場合に True を返します pygame.display.iconify: ディスプレイ表面をアイコン化します pygame.display.toggle_fullscreen : 全画面表示とウィンドウ表示を切り替えます pygame.display.set_gamma: ハードウェア ガンマ ランプを変更します pygame.display.set_gamma_ramp: を使用してハードウェア ガンマ ランプを変更します。カスタム ルックアップ pygame.display.set_icon: 表示ウィンドウのシステム イメージを変更します pygame.display.set_caption: 現在のウィンドウ タイトルを設定します< a i=22> pygame.display.get_caption: 現在のウィンドウのタイトルを取得します pygame.display .set_palette: インデックス表示の表示パレットを設定します pygame.display .get_num_displays: ディスプレイ番号を返します。 pygame.display.get_window_size: ウィンドウまたは画面のサイズを返します。 pygame.display.get_allow_screensaver: スクリーン セーバーかどうかを返します。実行が許可されます。 pygame.display.set_allow_screensaver: スクリーンセーバーを実行できるかどうかを設定します




















 9) pygame.draw 直線や楕円などの単純な形状を表面に描画します

pygame.draw.rect: 長方形を描画します
pygame.draw.polygon: 多角形を描画します
pygame.draw.circle: 円を描画します
pygame.draw.ellipse: 楕円を描画します
pygame.draw.arc: 楕円弧を描画します
pygame.draw。 line: 直線を描画します
pygame.draw.lines: 複数の連続する直線セグメントを描画します
pygame.draw.aline: アンチエイリアス処理された直線を描画します< /a >
pygame.draw.aalines: 複数の連続したアンチエイリアス処理された直線セグメントを描画します

10)pygame.event さまざまな入力デバイスやウィンドウ プラットフォームから受信したイベントを管理する

pygame.event.pump: pygame イベント ハンドラーの内部処理
pygame.event.get: キューからイベントを取得します
pygame.event。 poll: キューから 1 つのイベントを取得します
pygame.event.wait: キュー内の 1 つのイベントを待機します
pygame.event.peek:イベント タイプはキューに登録されています 待機中
pygame.event.clear: キューからすべてのイベントを削除します
pygame.event.event_name: イベントから文字列名を取得しますID
pygame.event.set_blocked: キューで許可されるイベントを制御する
pygame.event.set_allowed: キューで許可されるイベントを制御する pygame.event.Event: イベントを表すために使用される pygame オブジェクト pygame.event.custom_type: カスタム ユーザー イベント タイプを作成します pygame.event.post: 新しいイベントをキューに追加します。 pygame.event.get_keyboard_grab: 現在のキーボードのグラブ ステータスを取得します。 pygame.event.set_keyboard_grab: 取得により、Alt+Tab キーや Meta/Super キーなどのシステム キーボード ショートカットをキャプチャできます。 pygame.event.get_grab : プログラムが入力デバイスを共有しているかどうかをテストする pygame.event.set_grab: 他のアプリケーションとの入力デバイスの共有を制御します
pygame.event .get_blocked: 特定の種類のイベントがキューによってブロックされているかどうかをテストします






 11)pygame.examples さまざまなプログラムでさまざまな pygame モジュールの使用法を示します

pygame.examples.alien.main: 完全なエイリアンのサンプルを再生する
pygame.examples.stars.main: 単純な星空のサンプルを実行する
pygame.examples.chimp.main: 動くチンパンジーを叩く
pygame.examples.moveit.main: アニメーション化されたオブジェクトを画面上に表示する
pygame.examples.fonty. main: フォント レンダリングの例を実行します
pygame.examples.freetype_misc.main: FreeType レンダリングの例を実行します
pygame.examples.vgrade.main: 垂直グラデーションを表示します pygame.examples.scrap_clipboard.main: クリップボードにアクセスします pygame.examples.glcube.main: OpenGL を使用してアニメーション化された 3D キューブを表示します pygame.examples.liquid.main: アニメーションを表示します。液体エフェクト pygame.examples.sound_array_demos.main: さまざまな sndarray エフェクトを再生する pygame。 example.sound.main: サウンドをロードして再生する pygame.examples.arraymo.main: さまざまなサーフ配列効果を表示します
pygame.examples.eventlist.main: pygame イベントを表示します pygame.examples.testsprite.main: 多数の動くスプライトを表示します pygame.examples.camera.main: 接続されたカメラからリアルタイムでキャプチャされたビデオを表示します a> pygame.examples.playmus.main: オーディオ ファイルを再生する pygame.examples.joystick.main: ジョイスティックの機能を示します< /span> pygame.examples.midi.main: MIDI サンプルを実行する pygame.examples.scaletest.main: スムーズスケールを使用して画像をインタラクティブに拡大縮小する pygame.examples.pixelarray.main: さまざまなピクセル配列生成を表示します。 効果 pygame.examples.cursors.main: 2 つの異なるカスタム カーソルを表示します。 pygame.examples.blit_blends.main: Surface.fill Additive Fill の代替手段を使用します pygame.examples.blend_fill.main: さまざまな Surface.fill メソッドのブレンド オプションを示します pygame.examples.headless_no_windows_needed.main: 入力ファイルのスムーズにスケーリングされたコピーである画像ファイルを書き込みます


















 12)pygame.font TrueType フォントの読み込みとレンダリング

pygame.font.init: フォント モジュールを初期化します
pygame.font.quit: フォント モジュール
pygame.font の初期化をキャンセルします。 get_init: フォント モジュールが初期化されている場合は true
pygame.font.get_default_font: デフォルト フォントのファイル名を取得します
pygame.font.get_sdl_ttf_version: SDL_ttf バージョン
pygame.font.get_fonts: 利用可能なすべてのフォントを取得します
pygame.font.match_font: システム上の特定のフォントを検索します
pygame.font.SysFont: システム フォントから Font オブジェクトを作成します
pygame.font.Font: ファイルから新しい Font オブジェクトを作成します

 13)pygame.freetype フォントの読み込みとレンダリングのための強化された pygame モジュール

pygame.freetype.get_error: 最新の FreeType エラーを返す
pygame.freetype.get_version: FreeType のバージョンを返す
pygame.freetype.init:初期化 基礎となる FreeType ライブラリ。
pygame.freetype.quit: 基礎となる FreeType ライブラリを閉じます。
pygame.freetype.get_init: FreeType モジュールが現在初期化されている場合は True を返します。
pygame.freetype.was_init: 非推奨: 代わりに get_init() を使用してください。
pygame.freetype.get_cache_size: グリフの大文字のサイズを返します。
pygame.freetype.get_default_resolution: デフォルトのピクセル サイズ (1 インチあたりのドット数) を返します。 pygame.freetype.Font: サポートされているフォント ファイルから新しい Font インスタンスを作成します。 pygame.freetype.get_default_font: デフォルト フォントのファイル名を取得します pygame.freetype.SysFont: システム フォントから Font オブジェクトを作成します
pygame.freetype.set_default_resolution: モジュールのデフォルトのピクセル サイズ (インチあたりのドット数) を設定します。


 14)pygame.gfxdraw アンチエイリアシング描画関数

pygame.gfxdraw.pixel: ピクセルを描画します
pygame.gfxdraw.hline: 水平線を描画します
pygame.gfxdraw.vline: ピクセルを描画します垂直線 線
pygame.gfxdraw.line: 線を描画
pygame.gfxdraw.rectangle: 長方形を描画
pygame。 gfxdraw.box: 塗りつぶされた四角形を描画します
pygame.gfxdraw.circle: 円を描画します
pygame.gfxdraw.aacircle: アンチエイリアスされた円を描画します< a i=8> pygame.gfxdraw.filled_circle: 実線の円を描画します pygame.gfxdraw.ellipse: 楕円を描画します pygame.gfxdraw.aaellipse: 描画反鋸歯状楕円 pygame.gfxdraw.filled_ellipse: 実線の楕円を描く pygame.gfxdraw.arc: 円弧を描く pygame .gfxdraw.pie: 円を描く pygame.gfxdraw.trigon: 三角形を描く pygame.gfxdraw.atrigon: アンチエイリアスされた三角形を描く/triangle pygame.gfxdraw.filled_trigon: 実線の三角形/三角形を描画します pygame.gfxdraw.polygon: 多角形を描画します pygame.gfxdraw.aapolygon: アンチエイリアスされたポリゴンを描画します pygame.gfxdraw.filled_polygon: 塗りつぶされたポリゴンを描画します pygame.gfxdraw.textured_polygon: テクスチャ付きポリゴンを描画します pygame.gfxdraw.bezier: ベジェ曲線を描く













 15)pygame.image 加载、保存和传输表面

pygame.image.load: ファイル (またはファイルのようなオブジェクト) から新しい画像をロードします。
pygame.image.save: 画像をファイル (またはファイルに似たオブジェクト) に保存します。 like object)
pygame.image.get_sdl_image_version: 使用されている SDL_Image ライブラリのバージョン番号を取得します
pygame.image.get_extended: 拡張画像形式が使用できるかどうかをテストします。ロードされる
pygame.image.tostring: 画像をバイト バッファに転送
pygame.image.tobytes: 画像をバイト バッファに転送
pygame.image.fromstring: バイト バッファから新しい Surface を作成します
pygame.image.frombytes: バイト バッファから新しい Surface を作成します
pygame .image .frombuffer: 新しい Surface を作成し、バイト バッファー内でデータを共有します。
pygame.image.load_basic: ファイル (またはファイルのようなオブジェクト) から新しい BMP 画像をロードします。 a> pygame.image.save_extended: png/jpg 画像を保存しますファイル (または同様のファイル オブジェクト) へ
pygame.image.load_extended: ファイル (またはファイルのようなオブジェクト) から画像をロードします

 16)pygame.joystick ジョイスティック デバイスの管理

pygame.joystick.init: ジョイスティック モジュールを初期化します。
pygame.joystick.quit: ジョイスティック モジュールを初期化解除します。
pygame.joystick.get_init: ジョイスティック モジュールが初期化されている場合は True を返します。
pygame.joystick.get_count: ジョイスティックの数を返します。
pygame.joystick.Joystick: 新しいジョイスティック オブジェクトを作成します。

 17)pygame.key 管理键盘设备

pygame.key.get_focused: ディスプレイがシステムからキーボード入力を受信して​​いる場合は true
pygame.key.get_pressed: すべてのキーボード ボタンのステータスを取得します< a i =2> pygame.key.get_mods: どの修飾キーが押されているかを決定する pygame.key.set_mods: どの修飾キーが押されているかを一時的に設定する pygame.key .set_repeat: 押されたキーがどのように繰り返されるかを制御します pygame.key.get_repeat: 押されたキーがどのように繰り返されるかを表示します pygame.key.name: パスワードを取得しますキー識別子の名前 pygame.key.key_code: キー名からキー識別子を取得します pygame.key.start_text_input: Unicode テキスト入力イベントの処理を開始します pygame.key.stop_text_input: Unicode テキスト入力イベントの処理を停止します pygame.key.set_text_input_rect: 候補リストの位置を制御します








 18)pygame.locals Pygame 常量

このモジュールには、pygame で使用されるさまざまな定数が含まれています。そのコンテンツは自動的に pygame モジュール名前空間に配置されます。

19)pygame.mixer 加载并播放声音

pygame.mixer.init: ミキサー モジュールを初期化する
pygame.mixer.pre_init: ミキサー初期化パラメータをプリセットする
pygame.mixer .quit: 初期化しないミキサー
pygame.mixer.get_init: ミキサーが初期化されているかどうかをテストします
pygame.mixer.stop: すべてのチャンネルの再生を停止します
pygame.mixer.pause: すべてのチャンネルの再生を一時的に停止します
pygame.mixer.unpause: 一時停止したチャンネルの再生を再開します
pygame.mixer.fadeout:すべてのサウンドの音量を徐々に下げてから停止します
pygame.mixer.set_num_channels: 再生チャンネルの合計数を設定します
pygame.mixer.get_num_channels: 合計数を取得します再生チャンネルの数
pygame.mixer.set_reserved: 自動的に使用されないようにチャンネルを予約します
pygame.mixer.find_channel: 未使用のチャンネルを検索します
pygame.mixer.get_busy: サウンドがミックスされているかどうかをテストする
pygame.mixer.get_sdl_mixer_version: ミキサーの SDL バージョンを取得する
pygame.mixer.Sound : ファイルまたはバッファ オブジェクトから新しい Sound オブジェクトを作成します
pygame.mixer.Channel: 再生を制御する Channel オブジェクトを作成します

20)pygame.mouse マウス デバイスとディスプレイを管理する

pygame.mouse.get_pressed: マウス ボタンのステータスを取得します
pygame.mouse.get_pos: マウス カーソルの位置を取得します
pygame.mouse .get_rel: マウスの移動量を取得します
pygame.mouse.set_pos: マウス カーソルの位置を設定します
pygame.mouse.set_visible: マウス カーソルを非表示または表示します
pygame.mouse.get_visible: マウス カーソルの現在の表示ステータスを取得します。
pygame.mouse.get_focused: モニターがマウス入力を受信して​​いるかどうかを確認します。 pygame.mouse.get_cursor: 現在のマウス カーソルを取得します
pygame.mouse.set_cursor: マウス カーソルを新しいカーソルに設定します

21)pygame.mixer.music ストリーミング音楽トラックを再生する

pygame.mixer.music.load: 再生する音楽ファイルをロードします
pygame.mixer.music.unload: 現在ロードされている音楽をアンロードしてリソースを解放します
pygame.mixer.music.play: 音楽ストリームの再生を開始します
pygame.mixer.music.rewind: 音楽を再開します
pygame.mixer.music.stop : 停止音楽再生
pygame.mixer.music.pause: 音楽再生を一時的に停止します
pygame.mixer.music.unpause: 一時停止した音楽を再開します
pygame.mixer.music.fadeout: フェードアウト後に音楽再生を停止します
pygame.mixer.music.set_volume: 音楽の音量を設定します
pygame.mixer .music .get_volume: 音楽の音量を取得します
pygame.mixer.music.get_busy: 音楽ストリームが再生されているかどうかを確認します
pygame.mixer.music.set_pos: 再生を設定します位置
pygame.mixer.music.get_pos: 音楽の再生時間を取得します
pygame.mixer.music.queue: 現在のサウンドファイルを追跡するためにサウンド ファイルをキューに入れます pygame.mixer.music.get_endevent: 再生停止時にチャンネルから送信されるイベントを取得する
pygame.mixer.music.set_endevent: 再生停止時に音楽にイベントを送信させる

22)pygame.PixelArray 画像のピクセル データを操作する

pygame.PixelArray.surface: PixelArray で使用される Surface を取得します。
pygame.PixelArray.itemsize: ピクセル配列項目のバイト サイズを返します。
pygame.PixelArray.my: 寸法を返します。
pygame.PixelArray.shape: 配列のサイズを返します。
pygame.PixelArray.strides: 配列の各次元のバイト オフセットを返します。
pygame.PixelArray.make_surface: 現在の PixelArray から新しい Surface を作成します。
pygame.PixelArray.replace: PixelArray で渡された色を別の色に置き換えます。
pygame.PixelArray.extract: 渡された色を PixelArray から抽出します。
pygame.PixelArray.compare: PixelArray を別の PixelArray と比較します。
pygame.PixelArray.transpose: x 軸と y 軸を入れ替えます。
pygame.PixelArray.close: PixelArray を閉じて、Surface ロックを解除します。

23)pygame.Rect 矩形的灵活容器


pygame.Rect.copy: 四角形をコピーします
pygame.Rect.move: 四角形を移動します
pygame.Rect.move_ip: 四角形を移動します所定の位置に配置
pygame.Rect.inflate: 長方形のサイズを拡大または縮小します
pygame.Rect.inflate_ip: 所定の位置にある長方形のサイズを拡大または縮小します
pygame.Rect.scale_by: 指定された乗数で四角形を拡大縮小します
pygame.Rect.scale_by_ip: 四角形のサイズをその場で拡大または縮小します< a i=7> pygame.Rect.update: 四角形の位置とサイズを設定します pygame.Rect.clamp: 四角形を別の四角形に移動します pygame。 Rect.clamp_ip: 長方形を移動する 別の長方形に移動する pygame.Rect.clip: 別の長方形内で長方形をクリップする pygame.Rect.clipline: 線をクリップする長方形内 pygame.Rect.union: 2 つの長方形を 1 つに結合します pygame.Rect.union_ip: 2 つの長方形を所定の位置で 1 つに接続します < a i=14> pygame.Rect.unionall: 多数の長方形の結合 pygame.Rect.unionall_ip: 多数の長方形の結合 pygame.Rect.fit : サイズ変更とアスペクト比に従って四角形を移動します pygame.Rect.normalize: 負の寸法を修正します pygame.Rect.contains: 四角形が別の四角形の内側にあるかどうかをテストします< /span> pygame.Rect.colliderect: 2 つの四角形が重なっているかどうかをテストします pygame.Rect.collidedictall: 辞書内のすべての四角形が交差するかどうかをテストします pygame.Rect.collidedict: テスト辞書内の四角形が交差するかどうか pygame.Rect.collideobjectsall: リスト内のすべてのオブジェクトが交差するかどうかをテストする pygame.Rect .collideobjects: リスト内のオブジェクトが交差するかどうかをテストする pygame.Rect.collidelistall: リスト内のすべての四角形が交差するかどうかをテストする pygame.Rect.collidelist: リスト内の四角形が交差するかどうかをテストする pygame.Rect.collidepoint: 点が四角形の中にあるかどうかをテストします



















24)pygame.scrap ネイティブ クリップボード アクセス

pygame.scrap.init: スクラップ モジュールを初期化します。
pygame.scrap.get_init: スクラップ モジュールが現在初期化されている場合は True を返します。
pygame.scrap.get: 指定された種類のデータをクリップボードから取得します。
pygame.scrap.get_types: 使用可能なクリップボード タイプのリストを取得します。
pygame.scrap.put: データをクリップボードに置きます。
pygame.scrap.contains: 指定されたタイプのデータがクリップボードにあるかどうかを確認します。
pygame.scrap.lost: pygame アプリケーションがクリップボードの所有権を失ったかどうかを示します。
pygame.scrap.set_mode: クリップボードのアクセス モードを設定します。

25)pygame.sndarray 操纵声音样本数据

pygame.sndarray.array: サウンド サンプルを配列にコピーする
pygame.sndarray.samples: サウンド サンプルを配列に参照する
pygame .sndarray .make_sound: 配列を Sound オブジェクトに変換します
pygame.sndarray.use_arraytype: サウンド配列の配列システムを設定します
pygame.sndarray.get_arraytype: を取得します現在アクティブな配列タイプ。
pygame.sndarray.get_arraytypes: 現在サポートされている配列システム タイプを取得します。

26)pygame.tests pygame

pygame.tests.run: pygame単体テストスイートを実行します。

27)pygame.time 時間とフレーム レートを管理する

pygame.time.get_ticks: 時間をミリ秒単位で取得します
pygame.time.wait: 一定期間プログラムを一時停止します
pygame。 time.delay: 一定期間プログラムを一時停止します
pygame.time.set_timer: イベント キューにイベントを繰り返し作成します
pygame.time.Clock: 作成します時間を追跡するのに役立つオブジェクト

28)pygame.transform 画像のサイズ変更と移動

pygame.transform.flip: 垂直方向と水平方向に反転
pygame.transform.scale: 新しい解像度にサイズ変更します
pygame.transform.scale_by : サイズ変更スカラーを使用して新しい解像度に変換
pygame.transform.rotate: 画像を回転
pygame.transform.rotozoom: スケーリングと回転をフィルタリング< a i=5> pygame.transform.scale2x: 特殊な画像乗算器 pygame.transform.smoothscale: サーフェスを任意のサイズにスムーズにスケール pygame.transform .smoothscale_by: を使用して新しい解像度にサイズ変更します。 scalar pygame.transform.get_smoothscale_backend: 使用中のスムーズスケール フィルターのバージョンを返します: 「GENERIC」、「MMX」、または「SSE」 pygame.transform.set_smoothscale_backend:スムーズスケール フィルターのバージョンを次のいずれかに設定します: "GENERIC"、"MMX"、または "SSE" pygame.transform.chop: 内部領域が削除された画像のコピーを取得します< a i=11> pygame.transform.laplacian: サーフェスのエッジを検索 pygame.transform.average_surfaces: 複数のサーフェスから平均を検索します。 pygame.transform.average_color: サーフェスの平均色を見つける pygame.transform.grayscale: サーフェスをグレースケールする pygame .transform.threshold: 「search_color」または「search_surf」のしきい値内にサーフェス内のどのピクセルがいくつあるかを見つけます。










2. Pygameのインストールと使い方

1. インストール

pip install pygame

2. 応用事例

1) キー (Alt + W/A/S/D) を押してボールを移動します

# -*- coding:utf-8 -*-
import pygame

# 初始化pygame
pygame.init()

# 设置窗口标题
title = "Pygame应用案例-按键移动的小球"
pygame.display.set_caption(title)

screen = pygame.display.set_mode((1280, 720))
clock = pygame.time.Clock()
running = True
dt = 0

player_pos = pygame.Vector2(screen.get_width() / 2, screen.get_height() / 2)

while running:
    # 事件轮询 - pygame.QUIT 事件表示用户单击X关闭您的窗口
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    # 用一种颜色填充屏幕以擦除上一帧中的任何内容
    screen.fill("purple")

    pygame.draw.circle(screen, "red", player_pos, 40)

    keys = pygame.key.get_pressed()
    if keys[pygame.K_w]:
        player_pos.y -= 300 * dt
    if keys[pygame.K_s]:
        player_pos.y += 300 * dt
    if keys[pygame.K_a]:
        player_pos.x -= 300 * dt
    if keys[pygame.K_d]:
        player_pos.x += 300 * dt

    # 更新全部显示 
    pygame.display.flip()

    # 将FPS限制为60
    # dt是自上一帧以来的增量时间(以秒为单位),用于帧速率
    dt = clock.tick(60) / 1000

pygame.quit()

2) ルールに従って動く小さなボール

# -*- coding:utf-8 -*-
import sys
import pygame

# 初始化pygame
pygame.init()

# 设置窗口标题
title = "Pygame应用案例-规则移动的小球"
pygame.display.set_caption(title)

# 显示窗口
width = 800
height = 600
screen = pygame.display.set_mode((width, height))  

ball = pygame.image.load("ball.png")  # 加载图片
ballrect = ball.get_rect()  # 根据图片大小获取矩形区域

speed = [5, 5]  # 设置移动的X轴、Y轴距离
clock = pygame.time.Clock()  # 创建时钟对象
# 执行死循环,确保窗口一直显示
while True:

    # 表示每秒钟60次帧刷新
    clock.tick(60)

    # 检查事件
    for event in pygame.event.get():
        if event.type == pygame.QUIT:  # 如果点击关闭窗口,则退出
            pygame.quit()  # 退出pygame
            sys.exit()

    ballrect = ballrect.move(speed)  # 通过再次赋值移动小球
    # 碰到左右边缘
    if ballrect.left < 0 or ballrect.right > width:
        speed[0] = -speed[0]  #如果碰到边距则反方向移动
    # 碰到上下边缘
    if ballrect.top < 0 or ballrect.bottom > height:
        speed[1] = -speed[1]

    # 填充颜色
    screen.fill("purple")
    # 此函数是将图片推送到窗口上,第一个参数为图片第二个参数为图片位置
    screen.blit(ball, ballrect) 
    # 更新全部显示 
    pygame.display.flip()  
 
pygame.quit()

その他のゲーム ケースは、公式 Web サイト (https://www.pygame.org/tags/all) からダウンロードして表示できます。 https://www.pygame.org/tags/all a> 

おすすめ

転載: blog.csdn.net/m0_68949064/article/details/134599850