でんでんジャンプを作ろう

 

メイクコード アーケード を使ったゲーム作り第9弾です。

前回、タイルマップの機能を使って極小の迷路を作りました。
絵をタイルのように並べて使えるので、迷路やRPGのフィールドのような場面で使えます。
この機能をサイドビュータイプのアクションゲームに利用したいと思います。

これまで頻繁に出てきたブロックの説明はできるだけ省略していきます。
説明が理解できないときは、当講座を初めからやり直すことをお勧めします
やり直すときは少しアレンジしていくと楽しいですよ。

 

これから作るゲーム

かたつむりを操作して、ヘビを避けながらリンゴを取るゲームです。
昔、かたつむりのことをでんでん虫という人もいました。
うーん、懐かしい。

でんでんジャンプ

 

プレイヤー(かたつむり)は左右のみ移動できます。
A ボタンでジャンプします。
ヘビをかわしてリンゴを取りましょう。
なお、ヘビに当たったりリンゴを取り損ねるとライフが減ります。

 

背景を入れよう

新しくプロジェクトを作成します。
プロジェクトの名前を入力して 作成 ボタンをクリックします。

プロジェクト名を入力して作成を押す

 

最初だけの中に背景画像を○に設定を入れます。
絵は下図のものがいいと思います。森の中っぽいですよね。

背景画像を入れる

 

タイルマップを使おう

さっそく、タイルマップの出番です。
シーン から タイルマップ○を設定する をドラッグします。

タイルマップを設定するを使う

 

タイルマップエディタを開きます。

タイルマップエディタを開く

 

ページの左下にあるマップサイズを変更します。
108 にします。
この値が実際の画面サイズとほぼ同じになります。

マップサイズを10x8に変更する

 

ぺんツールを使って草を描きます。
草の絵は Forest の3ページ目にあります。

画面下に草を描く

 

当たり判定を付けます。
いま何をしているのか分からない人は ちょびっと迷路を作ろう をやり直しましょう。

当たり判定を入れる

 

タイルマップの下準備はここまでです。
実際の効果はプレイヤーを入れて初めて分かります。

 

プレイヤーを用意しよう

最初だけの中にプレイヤーのスプライトを用意します。

プレイヤースプライトを用意する

 

絵は次のものを選びました。

プレイヤーの絵を選択する

 

プレイヤーに重力(下に加速する力)を加えます。
スプライト から mySpriteのxを0にする をドラッグします。

mySpriteのxを0にするを使う

 

mySprite の ay(y方向の加速度)500 に設定します。
これが下に加速する力です。

下に加速する力を500にする

 

実行してみましょう。
プレイヤーは草の位置まで落ちます。
タイルマップを使って草のところに当たり判定を入れたので、草の位置で止まります。
この課題で一番説明したかったことが「タイルマップで地面を作る」です。
このような使い方は特殊ではなくサイドビューのアクションゲームでよく使います。
横スクロールのゲームもいつか記事にしたいと思います。

プレイヤーが草の位置まで落ちる

 

移動できるようにします。
左右のみに限定するため速度 vx 100 vy 0 にします。

左右のみ限定の操作 vx100 vy0

 

左右に移動できるかテストしてみましょう。
画面の端まで移動してみてください。画面外へ出ないで止まります。

タイルマップのため画面外へ出ない

 

「どうして画面外へ出ないの?」
と思った人は鋭いです。まだ set mySprite stay in screen を使っていないので普通は画面外へ出てしまいます。
これはタイルマップを使っているためです。
タイルマップで設定したマップサイズより外へ移動させることができなくなるのです。

 

ジャンプさせよう

Aボタンでジャンプできるようにします。

コントローラー から Aボタンが押した時 を用意します。

Aボタンが押した時を用意する

 

ジャンプ、つまり上に跳ね上がるための速度を加えます。

mySprite のay(y方向の加速度)を 500にする をコピーして Aボタンが押した時 に入れます。

下に加速する力をコピーする

 

mySprite の vy(速度y)-200 に変更します。
上に向かっての力が必要なのでマイナスになります。
-200 という数値は何度かジャンプを試してみて決めました。
重力は下に引っ張ることで加速するのに対し、ジャンプに必要なのは初期速度だけです。 そのため vy(速度y)をセットしました。
これも結局、重力により下に引っ張られ、やがて落下するのでジャンプの動きになります。

vy(速度y)を-200にする

実際にテストしてみてください。
プレイヤーの動きを見て、
「Aボタンを押したとき、上に向かって力が発生し上に移動するけど重力に引っ張られて落ちるのか」
みたいな思考ができれば、これからのゲーム作りも捗ります。

 

ジャンプは地面から

さて、実際にテストしてみましたか?
不具合がなかったですか?

しっかりありました。ジャンプ中にジャンプできてしまいますね。
ジャンプし放題でゲームになりません。

ジャンプ中にジャンプできる

 

理由は簡単です。
Aボタンを押すたび、上に向かって力(速度y)を加えているためです。
条件判断を使って地面にいるときだけジャンプできるようにします。

論理 から もし 真 なら を持ってきます。

もし真ならを使う

 

Aボタンが押した時 の中に入れます。

Aボタンが押した時の中に入れる

 

地面、つまり壁に当たっているかどうか調べるためのブロックを用意します。

シーン から mySpriteが左の壁に当たった を持ってきます。

mySpriteが左の壁に当たったを使う

 

条件判断の中に入れます。
地面、つまり下の壁なのかを判断したいため に変更します。
作業が終わったらテストしましょう。地面の上にいるときだけジャンプできます。

下の壁に当たった時に変更する

 

「壁ってなんだ?」と思いましたか。
条件判断に入れたブロックは シーン から持ってきました。
タイルマップの機能は シーン の中に用意されています。
「壁」とは、タイプマップエディタで当たり判定を入れた場所、および、タイルマップ外を指します。

 

プレイヤーの絵の向きを変えよう

プレイヤーの絵を進む向きに合わせたいと思います。
左右のボタンを押している時に絵を変更します。

まず 右ボタンが押した時 を用意します。
Aボタンが押した時 をコピーしてもいいし、コントローラー から持ってきてもいいです。

右ボタンが押した時を用意する

 

スプライト から mySpriteの画像を○にする を持ってきます。

mySpriteの画像を○にするを使う

 

右ボタンが押した時 の中に入れてスプライトエディタを開きます。

スプライトエディタを開く

 

まず、ギャラリーからカタツムリの絵を選びます。
そして上部にある 左右反転 のアイコンをクリックします。

左右反転のアイコンをクリック

 

右向きの絵になりました。

右向きの絵になる

 

右のときと左のとき、2つの処理を作ります。
左のときは反転させず、ギャラリーから選んだままでいいです。
終わったらテストしましょう。

左右どちらも作る

 

次回に続きます。

 

MakeCode Arcade

  1. MakeCodeはいかが
  2. りんご狩りゲーム
  3. りんご狩りゲーム(完)
  4. ピザを避けてゲーム
  5. ピザを避けて 2
  6. ピザを避けて(完)
  7. アカウント登録
  8. ケーキ早食いゲーム
  9. ケーキ早食い 2
  10. ケーキ早食い(完)
  11. 危険ドライブ
  12. 危険ドライブ 2
  13. 危険ドライブ(完)
  14. 15秒シューティング
  15. 15秒Shooting 2
  16. 15秒Shooting(完)
  17. ブロック崩し
  18. ブロック崩し 2
  19. ブロック崩し(完)
  20. ヘビキングを撃て
  21. ヘビキング(完)
  22. ちょびっと迷路
  23. ちょびっと迷路 2
  24. ちょびっと迷路(完)
  25. でんでんジャンプ
  26. でんでんJump 2
  27. でんでんJump(完)
  28. ミニダンジョン
  29. ミニダンジョン 2
  30. ミニダンジョン 3
  31. ミニダンジョン 4
  32. ミニダンジョン(完)