PYXEL GUIDE / はじめての方へ
Pyxelとは?使い方と始め方
Pyxel(ピクセル)は、Pythonでドット絵のレトロゲームを作るための無料のゲームエンジンです。このページでは、Pyxelで何ができるのか、どうやって始めるのか、最初のプログラムをどう読めばよいのかを、順番にまとめます。
- わかること
- Pyxelの特長、3つの始め方、最初のコードの読み方、ほかのツールとの違い
- 前提
- Pythonの変数・if・関数を少し触ったことがある
- 確認したバージョン
- Pyxel 2.9.9(Python 3.11以上)

Pyxelとは
Pyxel(ピクセル)は、Pythonで2Dのレトロゲームを作るためのゲームエンジン(ゲーム作りに必要な道具をひとまとめにしたもの)です。昔のゲーム機をお手本にして、使える色は16色、音は4チャンネルというように、あえて仕様を小さく決めています。そのぶん覚えることが少なく、1人でも「小さなゲームを1本完成させる」ところまで進みやすいのが特長です。
オープンソース(MITライセンス)なので、無料で使えます。作ったゲームを配ったり販売したりすることもできます。その場合は、Pyxelの著作権とライセンスの表示をゲームと一緒に入れておきます。
Pyxelの主な仕様
- Windows・macOS・Linux と、Webブラウザーで動く
- プログラムは Python で書く
- 画面の大きさは自由に決められる(例:横160×縦120ドット)
- 16色のカラーパレット
- 256×256ドットの画像(イメージバンク)が3枚、256×256のタイルマップが8枚
- 音は4チャンネル。サウンドを64個と、それを組み合わせた音楽を8曲作れる
- キーボード・マウス・ゲームパッドで操作できる
- 画像と音を作るツール「Pyxel Editor」が付いている
色・音のチャンネル・イメージバンクなどの数は、標準の値です。上級者向けの機能で増やすこともできます。
画面の小さな点を表す英語の pixel(ピクセル)と同じ読み方です。作者が個人で開発しているオープンソースのソフトウェアで、公式の情報は GitHubのPyxelのページにまとまっています。
Pyxelでできること・向いていること
Pyxelが得意なのは、ドット絵で表現する2Dのゲームです。アクション、パズル、シューティング、RPGのように、昔のゲーム機にあったジャンルなら、ほとんど作れます。このサイトでも、パズル・アクション・シミュレーションなど100本のゲームを、Pyxelで作る講座にしています。
| 向いていること | 向いていないこと |
|---|---|
| 1人で小さなゲームを最後まで完成させたい | 写真のような高解像度の画面を作りたい |
| Pythonの練習を、目に見える形で楽しく続けたい | 本格的な3Dゲームを作りたい |
| ドット絵やピコピコした音の雰囲気が好き | たくさんの色を使った細かい表現をしたい(基本は16色) |
| 作ったゲームをブラウザーで遊んでもらいたい | スマートフォンのアプリとしてストアで配信したい |
スマートフォン用のアプリは作れませんが、Web版のPyxelを使えば、作ったゲームをスマートフォンのブラウザーで遊んでもらうことはできます。くわしくはPyxelで作ったゲームを公開する方法で説明しています。
Pyxelの3つの始め方
Pyxelを始める方法は、大きく分けて3つあります。目的に合わせて選びましょう。
| 方法 | 必要なもの | こんな人に |
|---|---|---|
| ブラウザーで試す (Pyxel Code Maker) | ブラウザーだけ。インストール不要 | まずPyxelの雰囲気を知りたい人。ただし、ファイルを複数に分けたプログラムには対応していません |
| VS Codeの拡張機能を使う | Visual Studio Code に拡張機能「Pyxel」を追加。PythonやPyxelのインストールは不要 | ふだんからVS Codeを使っている人 |
| PCにPythonとPyxelを入れる | Python 3.11以上と、pip で入れる Pyxel | このサイトの講座を動かしたい人、本格的に作りたい人 |
ブラウザー版の Pyxel Code Maker は、開くだけでコードを書いて実行できます。最初の1回だけ試してみるのにも便利です。
このサイトの講座は、3つ目の方法で動かします。公式の説明では pip install -U pyxel で最新版を入れますが、このサイトでは、作業するフォルダーごとに .venv(そのフォルダー専用のPythonの作業場所)を作り、動作を確かめた Pyxel 2.9.9 を入れる方法を案内しています。コマンドをコピーするだけで進められるので、はじめての方は「はじめる準備」から進めてください。
Python公式サイトのインストーラーでPythonを入れるときは、最初の画面で「Add python.exe to PATH」にチェックを入れておきましょう。あとで pyxel コマンドを使えるようにするための、公式の注意書きです。
最初のプログラムを読む
「はじめる準備」で動かす、いちばん小さなプログラムです。紺色の画面に、白い文字で「Hello, Pyxel!」と表示します。
import pyxel
pyxel.init(160, 120, title="My first Pyxel")
def update():
pass
def draw():
pyxel.cls(1)
pyxel.text(20, 55, "Hello, Pyxel!", 7)
pyxel.run(update, draw)1行ずつ、何をしているのかを見てみましょう。
| コード | 意味 |
|---|---|
import pyxel | Pyxelを使えるように読み込みます。 |
pyxel.init(160, 120, title="My first Pyxel") | 横160・縦120ドットの画面(ウィンドウ)を作ります。title はウィンドウの名前です。何も指定しなければ、1秒間に30回画面を更新します。 |
def update(): | ゲームのデータを変える関数です。キー入力を読んだり、位置や得点を変えたりします。今は何もしないので pass と書いています。 |
def draw(): | 画面を描く関数です。pyxel.cls(1) で画面全体を色1(紺)で塗りつぶし、pyxel.text(x, y, 文字, 色) で文字を描きます。 |
pyxel.run(update, draw) | ゲームを動かし始めます。ここから先は、update と draw が1秒間に何十回もくり返し呼ばれます。 |
入力を読み、データを変える
今のデータで画面を描く
1秒に30回(初期設定)
座標と色の決まり
画面の左上が (0, 0) です。右へ行くほど x が、下へ行くほど y が大きくなります。色は 0〜15 の番号で指定します。たとえば 0 は黒、1 は紺、7 は白、8 は赤、10 は黄色です。pyxel.COLOR_WHITE のように、名前で書くこともできます。
update と draw を分けて考えるのが、Pyxelのゲームを読むときの基本です。くわしくは共通入門の入力・更新・描画を分けるで、実際に動かしながら確かめられます。
キーで四角を動かしてみる
次は、矢印キーでオレンジ色の四角を動かします。公式の説明と同じように、実際のゲームではクラス(class)にまとめて書くのがおすすめです。self.x と self.y が「今の位置」で、update で変え、draw で描きます。
import pyxel
class App:
def __init__(self):
pyxel.init(160, 120, title="Move the box")
self.x = 76
self.y = 56
pyxel.run(self.update, self.draw)
def update(self):
if pyxel.btn(pyxel.KEY_LEFT):
self.x -= 2
if pyxel.btn(pyxel.KEY_RIGHT):
self.x += 2
if pyxel.btn(pyxel.KEY_UP):
self.y -= 2
if pyxel.btn(pyxel.KEY_DOWN):
self.y += 2
self.x = max(0, min(self.x, pyxel.width - 8))
self.y = max(0, min(self.y, pyxel.height - 8))
def draw(self):
pyxel.cls(1)
pyxel.rect(self.x, self.y, 8, 8, 9)
pyxel.text(4, 4, f"X={self.x} Y={self.y}", 7)
App()hello.py と同じフォルダーに保存して、次のコマンドで実行します。
.venv\Scripts\python.exe move_box.py.venv/bin/python move_box.pypyxel.btn(pyxel.KEY_LEFT)は、左キーを押している間ずっと True になります。押した瞬間の1回だけを知りたいときはpyxel.btnpを使います。max(0, min(self.x, pyxel.width - 8))は、四角が画面の外へ出ないように位置を制限しています。pyxel.width - 8は「画面の幅 − 四角の幅」です。- 画面の左上に、今の位置を
X=76 Y=56のように表示します。f-string を使って、数字を文字の中に入れています。
self.x -= 2 などの 2 を 4 に変えると、速く動きます。pyxel.rect の最後の 9(オレンジ)を 8(赤)に変えると、色が変わります。変える前に「どうなるか」を予想してから実行してみましょう。
覚えておくと便利なコマンドとキー
Pyxelを入れると、pyxel というコマンドも使えるようになります。よく使うものをまとめました。
| コマンド | できること |
|---|---|
pyxel run ファイル.py | Pythonのファイルを実行します。 |
pyxel watch フォルダー ファイル.py | フォルダーの中のファイルを保存するたびに、自動で実行し直します。止めるときは、ターミナルで Ctrl+C(Macも control+C)を押します。 |
pyxel edit ファイル.pyxres | Pyxel Editor を開いて、画像・タイルマップ・音・音楽を作ります。 |
pyxel package フォルダー ファイル.py | ゲームを1つの .pyxapp ファイルにまとめます。 |
pyxel play ファイル.pyxapp | .pyxapp ファイルのゲームを遊びます。 |
pyxel app2html ファイル.pyxapp | ブラウザーで遊べるHTMLファイルに変換します。 |
pyxel app2exe ファイル.pyxapp | 実行ファイルに変換します(PyInstaller が必要です)。 |
pyxel copy_examples | 公式サンプルを pyxel_examples フォルダーにコピーします。 |
このサイトの手順のように .venv に Pyxel を入れたときは、pyxel の代わりに .venv\Scripts\python.exe -m pyxel(macOS / Linux は .venv/bin/python -m pyxel)と書くと、そのフォルダーの Pyxel で実行できます。たとえば公式サンプルのコピーは .venv\Scripts\python.exe -m pyxel copy_examples です。
ゲームを動かしている間に使えるキー
| キー | できること |
|---|---|
| Esc | ゲームを終了する |
| Alt(Macは Option)+ 1 | スクリーンショットをデスクトップに保存する |
| Alt(Option)+ 3 | 画面の録画(最大10秒)をデスクトップに保存する |
| Alt(Option)+ R | ゲームをリセットする |
| Alt(Option)+ Enter | 全画面表示を切りかえる |
| Alt(Option)+ 0 | 動作の速さ(FPSなど)の表示を切りかえる |
スクリーンショットや録画は、作ったゲームを人に紹介するときに便利です。
Pygame・Scratch・Unityとの違い
ゲームを作る道具は、Pyxelのほかにもたくさんあります。よく比べられる3つとの違いを、ざっくりまとめました。
表は横にスクロールできます。
| Pyxel | Pygame | Scratch | Unity | |
|---|---|---|---|---|
| 書き方 | Python(文字で書く) | Python(文字で書く) | ブロックを組み合わせる | C#(文字で書く) |
| 画面 | 小さなドット絵の画面。基本は16色 | 解像度や色を自由に決められる | ステージの大きさが決まっている | 2D・3Dどちらも。高解像度も |
| 絵や音 | 画像・音のエディター付き | 別のツールで用意する | 絵や音のエディター付き | 素材は別のツールや、素材のストア(Asset Store)で用意する |
| ブラウザーで公開 | 公式のコマンドでHTMLにできる | 別の仕組みを使う | Scratchのサイトで共有できる | WebGL向けに書き出せる |
| 向いている人 | Pythonで小さなゲームを完成させたい人 | Pythonで自由度の高い2Dゲームを作りたい人 | プログラミングがはじめての人 | 本格的な2D・3Dゲームや、スマホ向けのゲームを作りたい人 |
どれが優れているというより、目的によって選ぶものです。「まずPythonでゲームを1本完成させたい」ならPyxel、「Pythonで解像度や色を自由に使いたい」ならPygame、「将来は3Dゲームやスマホアプリを作りたい」ならUnity、という選び方がわかりやすいでしょう。
Pyxelで身につけた「入力を読む → データを変える → 画面を描く」というゲームの考え方は、ほかのエンジンに移っても、そのまま役に立ちます。
各ツールの機能や対応環境は変わることがあります。くわしくは、それぞれの公式サイトで確認してください。
次に何を作る?
Pyxelの雰囲気がつかめたら、実際にゲームを1本作ってみましょう。このサイトでは、次の順番で進めるのがおすすめです。
はじめる準備
PythonとPyxelを入れて、最初の画面を出します。
おばけ洗濯日和の作り方
いちばんやさしい講座です。キャラクターの移動・当たり判定・得点を、5つのステップで作ります。
学習順と教材の選び方
作りたいテーマに合わせて、次の講座を選びます。
この記事で確認したこと
Pyxel 2.9.9 の公式ドキュメント(ユーザーガイド・APIリファレンス・Web版の使い方・よくある質問)とソースコードで、仕様の数字・コマンド・キー操作・初期設定のFPS(30)・色の番号を照合しました。
move_box.py は、Pyxelの代わりに入力と描画命令を記録する模擬モジュールで、キー入力による位置の変化と、画面の外へ出ない処理を確かめています。実際のPyxelのウィンドウでの表示確認と、Pygame・Scratch・Unity の実機での比較は、この記事の作成時には行っていません。
Pyxelの使い方ガイド
ほかのガイドも、講座の前後にあわせて読めます。