scratchでアクションゲームを作ろう!初心者用 part.2 ~ジャンプや左右の移動、重力~【プログラミング】
前回のパート1から始めたアクションゲーム開発の更新です!
前回の作業
- 重力の追加
- 右矢印キーと左矢印キーでの移動の導入
- ジャンプの導入
- 移動範囲の制限
前回はこの4つを作りました。今回したいことは…
左右の当たり判定とすり抜けないようにします。
言葉で言っても伝わりにくいと思うのでこちら↓の動画を見てください!
下からあたるとすり抜けてしまいます。
そして横から通ってもすり抜けてしまいます。
今回はこれを改善したいと思います!!
下からあたるとすり抜けてしまう問題
今回は色で判断したいと思うので…
土の色と草の色を分けようと思います。
問題解決のプログラムはこちらです!
予想より少なくないですか?
それはいいとして…
解説していきます!
黒色が茶色に触れたときつまり、プレイヤーが土に触れたときということです。
「y座標を-20ずつ変える」というのは
こちら↓のジャンプ処理の「y座標を20ずつ変える」に依存しています
これでこの問題は解決ですね!
横からすり抜ける問題
これも色で判断したいので、色々変えないといけません…
1. プレイヤーの色をこのように変えます
2. 浮いている地面に黒枠をつける
3. 移動のプログラムに入力の変数を追加する!
4. 黒が黒に触れたならに変える。
. 今回追加するプログラム。5
これで全部です!(つかれたぁ…)
それでは解説していきます!
まずは4から。
もともとは黒から緑だったのですが、黒から黒(プレイヤーから地面)にしました。
なぜなら、5のプログラムを実行するときに不具合が起こるので、2で黒枠を作りました。
次に5の解説!
初めの緑色が茶色に触れたとき(プレイヤーの正面が土に当たったとき)というものと、緑色が緑色に触れたとき(プレイヤーの正面が草に当たったとき)というものでそれぞれを分けて処理しました。
そして、2でした処理は、右向きになったとき入力という変数を0として、左向きになったとき入力という変数を1とします。
これによって左右どちらからの当たり判定もできるようにしています。
正直このプログラムには満足していないので改善しようと思います。
うまく説明できなくてすいません
今回完成したのがこちらです。
https://scratch.mit.edu/projects/425114052
(リミックス用)
最後に
今回のプログラムはもうちょっと改善できるかなと思うので、これ以降のpartで改善されるかもしれません。
お待ちください。
前のブログで次は画面移動やステージ作成をするといったのですが今回できなかったので次回に回そうと思います!
次のブログをお待ちください