見出し画像

【pyxel 1.5】pyxelで3D迷路を作ってみる(8)

前回は迷路のギミックを作成しました。今回はさらに仕掛けを増やしつつ、迷路自体のマップバリエーションを増やしてみようと思います。
ここまで作れれば通しで一応プレイできるようにするのでexe化してitch.coにアップロードしてみます。

前回までの進行具合は以下のnoteをご参照ください。

まずは今回追加したギミックについて。

今までの状態だと敵に追いつめられるとなすすべなくゲームオーバーになっていました。さすがにこれだと運ゲー的要素が強すぎるので、これを回避できる手法を作ります。

▲フェンスの設置ができるコマンドを追加しました。

「I」キーでフェンスを設置できるようにしました。これを使えば敵に追いつめられた時の緊急回避や、敵を袋小路に閉じ込めるといった使い道ができます。

▲フェンスを設置。

ただフェンスを設置しただけだと自分が進めなくなっちゃうので、これを取り除く仕組みも作ります。

▲フェンスに進むと除去のメッセージが出てきます。
▲「Y」キーでフェンスを取り除きました。

これで大分ゲームらしくなってきました。

続いて迷路のバリエーションを増やす作業に進みます。
今回は3パターンの迷路を作り、プレイごとにこの3種類からランダムに選ばれるようにします。

▲1つめ。スタート座標は(0, 0)。
▲2つめ。スタート座標は(0, 32)。
▲3つめ。スタート座標は(0, 64)。

これをランダムにするために、スタート座標のy座標をいじります。
コードは下記のような感じで。

      mi = pyxel.rndi(02)
      for i in range(32):
          self.data = []
          for i2 in range(32):
              self.data.append(pyxel.tilemap(0).pget(i2, i + mi * 32))
          self.maze.append(self.data)

miを0から2のランダムにして、32を掛けたものをスタート座標のyとしています。

▲スタート地点のマップがそれぞれ変わっています。
完全なランダムではありませんが、これでマップのバリエーションが増えました。

それではいったんここでexeの形で単体実行ファイルにしてitch.coにアップロードしてみます。
nuitkaを使ってコンパイル。

▲本体のexeとこのゲームのライセンス、pyxelのライセンスをまとめてZIP化。

▲アップロードできました。

今回はここまで。
次回は…どうしましょうね。ちょっと考え中。

コードやpyxresファイル、モジュールファイルはGitHubの方に置いてあります。

今回はここまで。
読んでいただきありがとうございました。

この記事が参加している募集

つくってみた

ここまで読んでいただきありがとうございます!