tairadate_highschool_programming_lesson_2025

弾幕ゲームを作ろう

弾幕ゲームとは?

弾幕ゲームは、キャラクターに対して発射される弾を避けまくるゲーム。弾の早さやタイミングを変えることで、ギリギリで避ける爽快感やクリアの達成感を楽しむゲーム。古くはインベーダーゲームとかのファミコン系のゲームもあり、作りやすさやオリジナリティの出しやすさもあって、よくインディーズ(メジャーじゃない、個人開発などの)ゲームで今でも多数のものが作られているジャンル。

今回はpyxelを使って、弾幕ゲームの基本を作っていくよ

アプリの設計を考えてみる

何も考えずにいきなりpythonを書き始めるのは、あんまり良くないとされている。みんなも英作文の宿題とかで、いきなり英語で文章を考えるより、まず日本語で何を言いたいかを整理して、どんな単語や文法を使うかを考えてから英文を作ったほうが効率が良かったりするので、どんな感じでコードを描いていくのか、どんな機能を使って作っていくのかを先に考えておこう。

### アプリに必要なものを考えてみよう プログラミングの勉強として、なにかアプリを作り始めるときに、「自分の実力でできるか」を考えないで、「こんなアプリができたらいいな」を考えるのがコツ。なんでかっていうと、それが一番楽しいから!アプリを作る順番として

①「こんなことできたらいいな!」をふんだん詰め込んだ「ぼくがかんがえたさいきょうのアプリ」を考える。 ②アプリに必要なものを考える ③その中から、「最低限」のものを考える ④まずは最低限のものを作ってみる ⑤うまくいったら、機能を付け加えていく

ここまでは、利用者=プレイヤー視点で必要なこと。では、開発する側として考えなくちゃいけないことはなんだろう?

他にも開発していくうえでいろいろ必要になってくるかもしれないけど、とりあえずこんな感じにしよう💦

データを考えたあとで必要なのは、そのデータを使って、どんな機能を作っていくか、つまり機能を考えなくちゃいけない。

まずは初期画面を表示

pyxelの準備をしよう。 今回はパソコンにpyxelがインストール済みだから、インストール作業は必要なし。

操作キャラクターを初期位置に表示しよう

キー 移動方向
右矢印(→) x軸方向に+
左矢印(←) x軸方向にー

移動の部分は敵キャラの移動の応用をすればいけそう。 問題はキー入力の部分。pyxelでは、キーごとに変数名が決まっていて、キーが押されているときはその変数にTrueが入る(=そうじゃないときはFalse)が入る。それを利用して

if キーが押されたかどうか== True:
    押されたときにやりたいこと

って感じにすればOK。 今回はキーボードの矢印キーを検知したいので、使うのはこの4つだけ

pyxel.KEY_RIGHT 右矢印
pyxel.KEY_LEFT 左矢印
pyxel.KEY_UP 上矢印
pyxel.KEY_DOWN 下矢印

じゃあ、右矢印が 押されたときに、キャラクターを右(x方向)に1移動するコードを書いてみよう

  if pyxel.btn(pyxel.KEY_RIGHT) == True:
      character["x"] = character["x"] + 1
      
  elif pyxel.btn(pyxel.KEY_LEFT) == True:
      character["x"] = character["x"] - 1