メインコンテンツへスキップ
見出し画像

【pyxel 1.5】pyxelで2Dアクションを作ってみる(3)

    今回は短めですが、ステージ切り替えの仕組みを作成しました。
    複数のマップから遊ぶマップを選べるようにします。

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

    今まではゲームを起動すると直接プレイ画面に遷移していたので、タイトル画面を設置。

    画像
    ▲簡易的ですが、とりあえずということで。

    タイトル画面でSキーを押すとゲームスタート、左右キーでマップを変えることができます。

    画像
    ▲今回は0・1・2の3つのマップを作ってみました。
    画像
    画像
    画像

    スタート地点の画像を載せてみました。3種類それぞれ違っています。
    この機能の実現方法をいろいろ考えてみましたが下記のような方法で作成しました。

    まず、pyxelのタイルマップは下記のようなコードで描画されます。

    pyxel.bltm(0, 0, 0, self.camera[0], self.camera[1], 128, 128, 15)

    これが修正前コードです。引数の3つ目、0となっているところが「どのタイルマップを使うか」という部分です。

    画像
    ▲マップエディタです。
    下の方の「TILEMAP」となっているところが該当の部分です。

    この値は0~7まで8つの数字が使えます。つまり、ここを切り替えれば8つまでのマップ切り替えは簡単に実装できるという事です。8もあれば十分でしょうからこの形で作ってみます。

    まずはマップエディタで適当にほかのマップを作成。

    画像
    ▲マップ2です。
    良く見ると「TILEMAP」の部分の数値が変わっています。

    あとはコード内でタイルマップを使っている部分を変数にしてしまえばOK。

    pyxel.bltm(0, 0, self.tile, self.camera[0], self.camera[1], 128, 128, 15)

    修正後のコードです。さっきは「0」で決め打ちだったところがself.tileの変数になっています。ここをいじくることで遊ぶマップを切り替えることができるようになりました。

    今回はここまで。
    コード全体は長くなるので、GitHubのリポジトリをご参照ください。

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

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

     
     
    出版社のしがない社内SE。 ここでは主に趣味のプログラミングやゲーム制作について書いています。作ったゲームは https://koidemizu.github.io/ で公開しているのでよかったら遊んでください。 ゲーム大好きインドア派。

    あなたへのおすすめ