5. 完成コードを動かしてみよう!
これで、自機が動く宇宙空間に、キラキラと流れる星空が追加されました。
今回のコードをまとめて、実際に動かしてみましょう!
import pyxel
import random
# =========================================================
# ASTRO SURVIVOR
# - 宇宙シューティングゲーム -
# =========================================================
# --- 定数設定 ---
SCREEN_WIDTH = 160
SCREEN_HEIGHT = 120
GAME_TITLE = "ASTRO SURVIVOR"
STAR_COUNT = 40
# キャラクターのサイズ
PLAYER_W = 8
PLAYER_H = 8
PLAYER_SPEED = 3
# 色の定義
COL_BLACK = 0
COL_NAVY = 1
COL_PURPLE = 2
COL_GREEN = 3
COL_BROWN = 4
COL_DBLUE = 5
COL_LBLUE = 6
COL_WHITE = 7
COL_RED = 8
COL_ORANGE = 9
COL_YELLOW = 10
COL_L_GREEN = 11
COL_CYAN = 12
COL_GRAY = 13
COL_PINK = 14
COL_PEACH = 15
# --- Pyxelの初期化と音の定義 ---
pyxel.init(SCREEN_WIDTH, SCREEN_HEIGHT, title=GAME_TITLE)
# --- 変数の初期化 ---
# プレイヤー
player_x = SCREEN_WIDTH // 2 - PLAYER_W // 2
player_y = SCREEN_HEIGHT - 20
# ゲームオブジェクト
stars = [] # [x, y, speed]
# 星空の準備
for _ in range(STAR_COUNT):
stars.append([
random.randint(0, SCREEN_WIDTH),
random.randint(0, SCREEN_HEIGHT),
random.randint(1, 3)
])
# =========================================================
# メインループ (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)
# --- 4. 星を動かす ---
for star in stars:
star[1] += star[2] # y座標にspeedを加算
# 画面外に出たら上に戻す
if star[1] > SCREEN_HEIGHT:
star[0] = random.randint(0, SCREEN_WIDTH) # x座標はランダムに
star[1] = 0 # 画面の上端に戻す
# 毎フレーム実行される描画処理 (結果を画面に表示する。計算はしない)
def draw():
pyxel.cls(COL_BLACK)
# 背景
for star in stars:
pyxel.pset(star[0], star[1], COL_WHITE if star[2] > 1 else COL_GRAY)
# プレイヤー
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)
上記のコードを実際にブラウザで動かしてみてください。
実際に動かしてみよう!
矢印キーで宇宙船を操作できます。星が流れていきます!
どうでしょうか?
画面いっぱいに星が流れ、宇宙を航行している気分が味わえるようになりましたね!
今回はリストを使ってたくさんの星を管理し、それらを動かすことで、ゲームの背景を魅力的に演出しました。
リストは、このように「同じ種類のものが複数ある」場合に非常に強力なツールとなります。
次回は、このリストの力をさらに活用して、自機から発射される弾丸を実装していきます。
次回、
リスト魔法バスター発射お楽しみに!

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