今回は、迷路ゲームの作り方を紹介します。
ただの迷路ゲームだとカンタンすぎるので
ちゃんと重力のあるステージでキャラクターを操作するようにしてみましょう。
参考にするゲームはこちら
Adventure

左下の小さい四角が動かすキャラクターで
各ステージのムラサキ色のブロックに触れると次のステージに進むことができます。
アイワナみたいなムリゲーにアレンジしてみるのもいいですね。
それではさっそく「中を見る」で作り方を見ていきましょう。

スプライト1 のスクリプトを見てみましょう。

が押されたとき・hide(隠す)を受け取ったとき・game over(ゲームオーバー)を受け取ったとき
どの場合も、大きさ50%から少しずつ大きさをかえてスタンプしていっていますね。
こうすることで奥に行くほど小さく見える、立体感を演出しています。
さらに、スタンプは当たり判定に干渉しませんので
ステージの当たり判定は、一番手前のスプライトのみでされるというのもポイントです。
よく考えられていますね。
ちなみに、このスクリプトは同じ部分が多いので
たとえばこのようにするとスッキリしますね。

このように「定義ブロック」を使うと
イベントごとに、どのような処理分けになっているのかが分かりやすくなります。
当たり判定や重力の計算は「Sprite2」が行っています。

「Sprite3」のキャラのスクリプトはこれだけです。

キャラの向きを変えたり
ステージが切り替わるときに一時的に消すなど
キャラクターの見た目に関することだけを担当しています。
そして「ずっと[Sprite2へ行く]」というプログラムになっていますね。
これで、センサーの役わりをはたすスプライトと
キャラクターの座標は常に同じ場所にいることになります。
センサーが当たり判定や移動のスクリプトを担当し
キャラ担当のスプライトはそれにずっとついていくことになります。
ではセンサーのスクリプトをみてみましょう。
(ペンでステージを描くアクションゲームを作ろう)
(細かい演出でプロっぽく仕上げよう)
今回は上下左右にセンサーをもったスプライトをつかって当たり判定をしていきます。
1つのスプライトで当たり判定をするよりも、カンタンにできますので
初心者のかたにもおススメな方法です。
「Sprite2」のスクリプトをみてみましょう。

まずは「赤色センサー」の部分です。
赤色センサーは下についているので、ステージの着地部分の判定を担当しています。
gravityYは、ジャンプ中の落ちる速度を決める変数です。
この値がプラスのときはキャラクターはどんどん上がっていきます。
上キーを押していないときはこの値がすこしずつ減っていきますので
ジャンプの速度もだんだん緩やかになります。
そして値がマイナスになると、キャラは下降をはじめます。
下降しているときも、gravityYの値はどんどんマイナスになりますので
落ちる速度は速くなっていきます。
着地するとgravityYは0になりますので、Y座標は変化しなくなります。
つぎに「黄色センサー」です。
黄色センサーは上についているので、ステージの上部分に頭をぶつけたら
gravityYをマイナスにして、上にいけないようにしています。
(マイナスの値が大きいほど、頭をぶつけたときの反動が大きくなります)

つぎは左右の移動です。
「xvel」という変数は、xの移動速度のことです(x velocity の略)
キーを押し続けると、だんだん加速するように、xvelをプラスしつづけます。
でも無限に速くなってしまわないように、「xvel * 0.85」の計算をしています。
これで、速度は2.83以上の速度にならないようになります。
(データのxvel変数のチェックボックスにチェックを入れて確認してみて下さい)
左右のセンサーは、それぞれの方向と反対方向にxvelの値を変えています。
右のカベにぶつかったときは、マイナス方向に
左のカベにぶつかったときは、プラス方向にしています。

あとはオプションの機能になりますが
Rキーが押されたときは、キャラの場所をリセット
ムラサキ色に触れたときは、次のステージへ進む
赤色に触れたときは、キャラのライフが1つ減り、ステージの最初からになります。
その機能が「Sprite2」にあるこのスクリプトです。

赤色にさわってライフが減ってしまい、0になったらゲームオーバー
という処理が最初に書いてありますね。
そのあと、「レベル○○のとき□色に触れたら」というのがワープの条件になります。
レベルとステージのコスチュームは連動していますので
ワープができる色の部分に触れると、座標をかえてワープ先に移動します。

あとは、ステージのコスチュームで、どの色をワープにするのか
ワープしたらどこの座標にキャラが移動するのかをみながら
色と座標を変更していきましょう。
後はどんどんステージを追加していけますので
お友達とリミックスしあって、どんどんステージを増やしていっても面白いですね。
また、セーブ・ロード機能を付けて
ステージの途中から遊べるようにするとか
障害物が動いたり、オジャマキャラを置いてみるのも楽しそうです。
アレンジ次第でどんなステージにもなると思いますので
色々アイデアをねって作ってみて下さいね。
この記事がよかった!という方は「B!」ボタンや
ただの迷路ゲームだとカンタンすぎるので
ちゃんと重力のあるステージでキャラクターを操作するようにしてみましょう。
参考にするゲームはこちら
Adventure

左下の小さい四角が動かすキャラクターで
各ステージのムラサキ色のブロックに触れると次のステージに進むことができます。
アイワナみたいなムリゲーにアレンジしてみるのもいいですね。
それではさっそく「中を見る」で作り方を見ていきましょう。
迷路を立体的にみせるには?
迷路を立体的にみせるロジックは、ステージのコスチュームにあります。
スプライト1 のスクリプトを見てみましょう。


どの場合も、大きさ50%から少しずつ大きさをかえてスタンプしていっていますね。
こうすることで奥に行くほど小さく見える、立体感を演出しています。
さらに、スタンプは当たり判定に干渉しませんので
ステージの当たり判定は、一番手前のスプライトのみでされるというのもポイントです。
よく考えられていますね。
ちなみに、このスクリプトは同じ部分が多いので
たとえばこのようにするとスッキリしますね。

このように「定義ブロック」を使うと
イベントごとに、どのような処理分けになっているのかが分かりやすくなります。
迷路内を動き回るキャラ
キャラクターのスプライトは「Sprite3」ですが当たり判定や重力の計算は「Sprite2」が行っています。

「Sprite3」のキャラのスクリプトはこれだけです。

キャラの向きを変えたり
ステージが切り替わるときに一時的に消すなど
キャラクターの見た目に関することだけを担当しています。
そして「ずっと[Sprite2へ行く]」というプログラムになっていますね。
これで、センサーの役わりをはたすスプライトと
キャラクターの座標は常に同じ場所にいることになります。
センサーが当たり判定や移動のスクリプトを担当し
キャラ担当のスプライトはそれにずっとついていくことになります。
ではセンサーのスクリプトをみてみましょう。
センサーと当たり判定
以前にもステージを動き回るキャラについては何度かやってきましたが(ペンでステージを描くアクションゲームを作ろう)
(細かい演出でプロっぽく仕上げよう)
今回は上下左右にセンサーをもったスプライトをつかって当たり判定をしていきます。
1つのスプライトで当たり判定をするよりも、カンタンにできますので
初心者のかたにもおススメな方法です。
「Sprite2」のスクリプトをみてみましょう。

まずは「赤色センサー」の部分です。
赤色センサーは下についているので、ステージの着地部分の判定を担当しています。
gravityYは、ジャンプ中の落ちる速度を決める変数です。
この値がプラスのときはキャラクターはどんどん上がっていきます。
上キーを押していないときはこの値がすこしずつ減っていきますので
ジャンプの速度もだんだん緩やかになります。
そして値がマイナスになると、キャラは下降をはじめます。
下降しているときも、gravityYの値はどんどんマイナスになりますので
落ちる速度は速くなっていきます。
着地するとgravityYは0になりますので、Y座標は変化しなくなります。
つぎに「黄色センサー」です。
黄色センサーは上についているので、ステージの上部分に頭をぶつけたら
gravityYをマイナスにして、上にいけないようにしています。
(マイナスの値が大きいほど、頭をぶつけたときの反動が大きくなります)

つぎは左右の移動です。
「xvel」という変数は、xの移動速度のことです(x velocity の略)
キーを押し続けると、だんだん加速するように、xvelをプラスしつづけます。
でも無限に速くなってしまわないように、「xvel * 0.85」の計算をしています。
これで、速度は2.83以上の速度にならないようになります。
(データのxvel変数のチェックボックスにチェックを入れて確認してみて下さい)
左右のセンサーは、それぞれの方向と反対方向にxvelの値を変えています。
右のカベにぶつかったときは、マイナス方向に
左のカベにぶつかったときは、プラス方向にしています。

あとはオプションの機能になりますが
Rキーが押されたときは、キャラの場所をリセット
ムラサキ色に触れたときは、次のステージへ進む
赤色に触れたときは、キャラのライフが1つ減り、ステージの最初からになります。
ワープ機能もつけてみよう
ステージが進むと、ワープできる場所が出現します。その機能が「Sprite2」にあるこのスクリプトです。

赤色にさわってライフが減ってしまい、0になったらゲームオーバー
という処理が最初に書いてありますね。
そのあと、「レベル○○のとき□色に触れたら」というのがワープの条件になります。
レベルとステージのコスチュームは連動していますので
ワープができる色の部分に触れると、座標をかえてワープ先に移動します。

あとは、ステージのコスチュームで、どの色をワープにするのか
ワープしたらどこの座標にキャラが移動するのかをみながら
色と座標を変更していきましょう。
さいごに
迷路ゲームは、いちどスクリプトを組んでしまえば後はどんどんステージを追加していけますので
お友達とリミックスしあって、どんどんステージを増やしていっても面白いですね。
また、セーブ・ロード機能を付けて
ステージの途中から遊べるようにするとか
障害物が動いたり、オジャマキャラを置いてみるのも楽しそうです。
アレンジ次第でどんなステージにもなると思いますので
色々アイデアをねって作ってみて下さいね。
この記事がよかった!という方は「B!」ボタンや
コメント