5. 動く自機を体験しよう!
それでは、ここまでの変更をすべて適用したコードを見てみましょう。
PLAYER_SPEED 定数の追加、update() 関数内の global 宣言、そしてキー入力と画面端制限の処理が加わっています。
draw() 関数に変更はありません。
import pyxel
# =========================================================
# ASTRO SURVIVOR
# - 宇宙シューティングゲーム -
# =========================================================
# --- 定数設定 ---
SCREEN_WIDTH = 160
SCREEN_HEIGHT = 120
GAME_TITLE = "ASTRO SURVIVOR"
# キャラクターのサイズ
PLAYER_W = 8
PLAYER_H = 8
PLAYER_SPEED = 3 # 新しく追加
# 色の定義
COL_BLACK = 0
COL_WHITE = 7
COL_RED = 8
COL_ORANGE = 9
COL_YELLOW = 10
COL_CYAN = 12
# --- Pyxelの初期化と音の定義 ---
pyxel.init(SCREEN_WIDTH, SCREEN_HEIGHT, title=GAME_TITLE)
# --- 変数の初期化 ---
# プレイヤー
player_x = SCREEN_WIDTH // 2 - PLAYER_W // 2
player_y = SCREEN_HEIGHT - 20
# =========================================================
# メインループ (Update & Draw)
# =========================================================
# 毎フレーム実行される更新処理 (計算などはここで行う。描画は禁止)
def update():
global player_x, player_y # これを追加しました
# --- 3. プレイヤー操作 ---
if pyxel.btn(pyxel.KEY_LEFT):
player_x = max(player_x - PLAYER_SPEED, 0) # 左端の制限
if pyxel.btn(pyxel.KEY_RIGHT):
player_x = min(player_x + PLAYER_SPEED, SCREEN_WIDTH - PLAYER_W) # 右端の制限
if pyxel.btn(pyxel.KEY_UP):
player_y = max(player_y - PLAYER_SPEED, 0) # 上端の制限
if pyxel.btn(pyxel.KEY_DOWN):
player_y = min(player_y + PLAYER_SPEED, SCREEN_HEIGHT - PLAYER_H) # 下端の制限
# 毎フレーム実行される描画処理 (結果を画面に表示する。計算はしない)
def draw():
pyxel.cls(COL_BLACK)
# 背景
# プレイヤー
pyxel.rect(player_x, player_y, PLAYER_W, PLAYER_H, COL_ORANGE)
pyxel.rect(player_x+3, player_y-2, 2, 2, COL_YELLOW)
pyxel.run(update, draw)
上記のコードを実際にブラウザで動かしてみてください。
矢印キーを押して、あなたの宇宙船が画面内を自由に動き回るのを確認しましょう!
実際に動かしてみよう!
矢印キーで宇宙船を操作できます
いかがでしたか? 自分のキー入力でキャラクターが動くのは、プログラミングの大きな喜びの一つですよね。
「もしも」の魔法 if 文が、ゲームの世界でこんなにも強力な力を持つことが実感できたのではないでしょうか。
次回は、宇宙に輝く星々を描いて、ゲームの背景をさらに魅力的にしていきます。
リスト魔法星空の実装どうぞお楽しみに!

最後まで読んでくれてありがとう!🌱
ノートみたいに、いつでも見返してね。