Pythonでゲーム作りますが何か?
このサイトでは、プログラミング言語Pythonと Pythonのゲーム用ライブラリPygameを用いてゲーム制作の過程やテクニックをまとめています。主に自分の知識の整理に使うつもりですが、これからPythonを学んでゲームを作ってみようという方の参考になれば幸いです。
- Pygameは知らなくても大丈夫ですが、Pythonの基本は知っていることを前提にしています。
- Pythonで書いたプログラムはWindowsでもMacでもLinuxでも動きます。
- ソースコードの著作権を主張することはないので自由に使ってください。
- 記事下方にあるナビゲーションはほとんど役に立ちません。このページを起点としてリンク先へ、読んだら戻るといった使い方が楽だと思います。
- NEW! 全ソースコードをGitHubのリポジトリとして公開しました。右下のDownload ZIPからまとめてダウンロードできます(2014/9/3)
- NEW! GitHubの全ソースコードをEclipseにプロジェクトとして読み込みたい場合は、Pythonでゲーム作りますが何か?のGitHubリポジトリをEclipseで読み込む(2014/9/9)を参考にしてください。
基礎
- インストール - Python、Pygame、PyOpenGLをインストールする(2008/5/3)
- ウィンドウを表示する - まずはウィンドウを表示する(2008/5/3)
- テキストを描画する - 画面に「Hello, world!」というテキストを表示する(2008/5/4)
- 図形を描画する - 四角形、円、直線を描画する(2008/5/5)
- イメージを描画する - 画像を描画する、透明色を指定する(2008/5/5)
- マウスイベント - マウスクリック、マウス移動を検出する(2008/5/6)
- 画像の移動と跳ね返り処理 - アニメーションの基本(2008/5/9)
- キーイベント - キーボードの押下を検出する(2008/5/10)
- BGMと効果音の再生 - BGMと効果音を鳴らす(2008/5/11)
- スプライトの使い方 - 画像と位置をまとめて管理する(2008/5/17)
- スプライトグループの使い方 - スプライトをまとめて管理する(2008/5/17)
- キャラクターアニメーション - 「足踏み」の作り方(2008/5/18)
- フルスクリーンモード - ゲームはやっぱりフルスクリーン(2008/6/21)
- ファイアボール - ターゲットへ向けてまっすぐ飛ばす(2008/10/25)
- フォントファイルのロード - 添付フォントで日本語を描画(2009/1/8)
ブロック崩し
インベーダー
横スクロールアクション
RPG
- プレイヤーの描画 - はじめに勇者ありき(2008/5/22)
- マップを作る - はじめての世界創造(2008/5/24)
- プレイヤーの移動 - 勇者は第一歩を踏み出した(2008/5/24)
- マップとの当たり判定 - 勇者は無人島に閉じ込められた(2008/5/26)
- 足踏みさせる - 移動しなくても足踏みはさせる(2008/5/29)
- カニ足移動を直す - こっち見んな(2008/5/31)
- オブジェクト化 - ここまでのまとめ(2008/5/31)
- マップのロード - いろんなマップが読み込める(2008/6/1)
- タイルベーススクロール - 勇者はいつでも世界の中心(2008/6/7)
- ピクセルベーススクロール - ドラクエみたいなスクロール(2008/6/14)
- キャラクターを追加 - 流浪の王様たち(2008/6/21)
- キャラクターイベント - イベントファイルの導入(2008/6/22)
- メッセージウィンドウの表示 - すべてのウィンドウの基礎(2008/6/28)
- メッセージエンジン - 文字列の描画(2008/6/28)
- 会話する - 王様は静かに語り始めた「しろは まだかい?」(2008/6/28)
- 流れるメッセージ - 会話は流れるように(2008/6/28)
- キャラクターチップとマップチップ - 全員集合!(2008/6/24)
- バイナリマップのロード - マップの保存(2008/7/5)で作ったバイナリマップをロード(2008/7/5)
- マップ間移動 - お城ができて王様たちも大喜び(2008/7/12)
- BGMを鳴らす - 音楽が鳴ると雰囲気が変わる(2008/7/12)
- 効果音を鳴らす - ザッザッザッって鳴ります(2008/7/13)
- デバッグ情報の表示 - 画面に座標とか表示(2008/7/20)
- 宝箱と扉を開ける - 王様がほうびをくれるそうです(2008/7/20)
- コマンドウィンドウ - ドラクエと同じになってしまった(2008/7/20)
- 町をつくる - マップを追加するのは簡単(2008/7/21)
- パーティー - 仲間ができたよ(2008/7/26)
- ゲーム状態の導入 - タイトル画面がださい?ほっとけ(2008/7/27)
- 戦闘画面 - まだたたかえない(2008/8/3)
マップエディタ
- カーソルの移動 - マップ内を自由に移動(2008/6/29)
- マップチップの描画 - マウスでお絵描き(2008/6/29)
- マップチップパレット - 1色のお絵描きじゃつまらないでしょ?(2008/6/30)
- 選択マップチップの表示 - グリッドも表示できるよ(2008/7/1)
- マップの新規作成 - テキストを入力するInputWindowも作成(2008/7/4)
- マップの保存 - バイナリ形式でマップを保存(2008/7/5)
- マップの読み込み - バイナリ形式マップを読み込む(2008/7/5)
ミニゲーム
- 1945 - 縦スクロールシューティング(2008/10/13)
人工知能
- ライフゲーム - 人生ゲームじゃないよ(2008/9/14)
PyOpenGL
- OpenGLウィンドウの表示 - OpenGL用ウィンドウの作成(2008/8/24)
- プリミティブの描画 - 点、線、三角、四角、ポリゴンの描画(2008/8/24)
- 立方体の描画 - 3Dオブジェクトの描画(2008/8/31)
- ティーポット - 簡単に3Dオブジェクトを作れる(2008/9/6)
- 平行移動・回転・拡大縮小 - アフィン変換(2008/9/14)
- 回転キューブ - 回転する立方体(2008/9/15)
- 神々のトライフォース - 某ゲームのあれ(2008/9/15)
- 惑星 - 太陽と地球と月みたいなの(2008/9/15)
- ライティング - 光あれ!(2008/10/11)
- キーボードの利用 - キーボードで物体を動かす(2008/10/18)