ロボ団群馬のブログ
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)と重力を使う
まずは動くキャラクターを作り、自分の手でゲームの第一歩を踏み出しましょう!
コメント
この記事へのトラックバックはありません。










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