ロボ団群馬のブログ
11.32019
Pyxelでキャラクターを動かそう!初心者向けステップ解説
Pyxelでキャラクターを動かそう!初心者向けステップ解説
Pythonでレトロゲームを作る人気ライブラリPyxel(ピクセル)。
今回は、「Pyxelでキャラを動かす方法」を初心者向けにやさしく解説します。
検索でも「pyxel キャラ 動かす」「pyxel キー入力」「pyxel move character」などが急増中。
この記事を読めば、あなたのキャラが矢印キーで動くようになります!
Pyxelでキャラを動かすために必要な基本
キャラクターを動かすには、主に次の3ステップで進めます。
- キャラクターの位置を変数で管理する
 - キー入力を検出する
 - 位置を更新して描画する
 
Pyxelは毎フレーム「update → draw」を繰り返すゲームループ構造になっているため、
update関数で動きを処理し、draw関数で画面に表示します。
キャラを動かす最小サンプルコード
import pyxel
class App:
    def __init__(self):
        pyxel.init(160, 120, title="Move Character")
        self.x = 70  # キャラのX座標
        self.y = 50  # キャラのY座標
        pyxel.run(self.update, self.draw)
    def update(self):
        # キー入力の確認
        if pyxel.btn(pyxel.KEY_RIGHT):
            self.x += 2
        if pyxel.btn(pyxel.KEY_LEFT):
            self.x -= 2
        if pyxel.btn(pyxel.KEY_DOWN):
            self.y += 2
        if pyxel.btn(pyxel.KEY_UP):
            self.y -= 2
    def draw(self):
        pyxel.cls(0)  # 背景を黒でクリア
        pyxel.rect(self.x, self.y, 8, 8, 11)  # キャラ(青い四角)
App()
このコードを実行すると、矢印キーで青い四角形が動きます。
これがPyxelでのキャラクター制御の基本形です!
コードのポイント解説
pyxel.btn():キーが押されている間Trueを返す関数pyxel.KEY_UP / KEY_DOWN / KEY_LEFT / KEY_RIGHT:方向キーの定数pyxel.rect(x, y, w, h, color):四角を描く
動きを滑らかにしたい場合は、1フレームで移動する距離(ここでは2)を変更します。
画像を使ってキャラを動かす
四角ではなく、Pyxel Editorで作ったキャラクター画像を動かすこともできます。
1. Pyxel Editorでキャラを作る
まず、Pyxel Editorで16×16ピクセルのキャラクターを描き、game.pyxresに保存します。
(エディタの開き方:pyxel edit game.pyxres)
2. キャラ画像を読み込むコード
import pyxel
class App:
    def __init__(self):
        pyxel.init(160, 120, title="Character Move with Image")
        pyxel.load("game.pyxres")  # キャラ画像を読み込み
        self.x = 70
        self.y = 50
        pyxel.run(self.update, self.draw)
    def update(self):
        if pyxel.btn(pyxel.KEY_RIGHT):
            self.x += 2
        if pyxel.btn(pyxel.KEY_LEFT):
            self.x -= 2
        if pyxel.btn(pyxel.KEY_DOWN):
            self.y += 2
        if pyxel.btn(pyxel.KEY_UP):
            self.y -= 2
    def draw(self):
        pyxel.cls(0)
        # 画像バンク0の(0,0)から16x16を描画
        pyxel.blt(self.x, self.y, 0, 0, 0, 16, 16)
App()
これでPyxel Editorで作った自分のキャラが動きます!
移動速度を調整したい場合は、移動量(2の部分)を変更します。
滑らかに動かす・画面外に出ないようにする
ゲームらしくするために、キャラが画面外に出ないように制限を加えてみましょう。
def update(self):
    if pyxel.btn(pyxel.KEY_RIGHT) and self.x < 160 - 16:
        self.x += 2
    if pyxel.btn(pyxel.KEY_LEFT) and self.x > 0:
        self.x -= 2
    if pyxel.btn(pyxel.KEY_DOWN) and self.y < 120 - 16:
        self.y += 2
    if pyxel.btn(pyxel.KEY_UP) and self.y > 0:
        self.y -= 2
これでキャラが画面の端で止まるようになります。
ゲームの基礎「壁判定」の第一歩です。
スペースキーでジャンプする(応用)
次は少し応用として、スペースキーでジャンプを実装してみましょう。
import pyxel
class App:
    def __init__(self):
        pyxel.init(160, 120, title="Jump Example")
        self.x = 70
        self.y = 90
        self.vy = 0     # 縦の速度
        self.on_ground = True
        pyxel.run(self.update, self.draw)
    def update(self):
        # 左右移動
        if pyxel.btn(pyxel.KEY_RIGHT):
            self.x += 2
        if pyxel.btn(pyxel.KEY_LEFT):
            self.x -= 2
        # ジャンプ処理
        if pyxel.btnp(pyxel.KEY_SPACE) and self.on_ground:
            self.vy = -8
            self.on_ground = False
        self.y += self.vy
        self.vy += 0.5  # 重力
        # 地面に着地
        if self.y > 90:
            self.y = 90
            self.vy = 0
            self.on_ground = True
    def draw(self):
        pyxel.cls(0)
        pyxel.rect(self.x, self.y, 8, 8, 11)
App()
これでスペースキーを押すとキャラがジャンプします。
Pyxelではこのように変数(速度など)をうまく使って動きを制御します。
よくある質問(FAQ)
- Q:キャラが動かない!
A:pyxel.btn()は押している間動作します。押した瞬間だけ動かしたい場合はpyxel.btnp()を使いましょう。 - Q:動きが速すぎる/遅すぎる
A:移動量(例:self.x += 2)を調整してください。 - Q:画像が表示されない
A:pyxel.load()で読み込むファイルパスが正しいか確認。PNGではなく.pyxresファイルを指定します。 
まとめ:Pyxelでキャラを動かすのはゲームづくりの第一歩!
Pyxelでキャラクターを動かせるようになると、
「アイテムを取る」「敵を避ける」「ステージをクリアする」など、どんどん世界が広がります。
次のステップは、衝突判定やスプライトアニメーションに挑戦してみましょう。
👇 今回のまとめ
- キー入力:
pyxel.btn() - 描画:
pyxel.rect()やpyxel.blt() - 画面外制御:座標の上限・下限チェック
 - ジャンプ:速度(vy)と重力を使う
 
まずは動くキャラクターを作り、自分の手でゲームの第一歩を踏み出しましょう!
コメント
この記事へのトラックバックはありません。









この記事へのコメントはありません。