はじめてゲームプログラミング 「ジャンプ台」の作り方
『つくってわかる はじめてゲームプログラミング』で、「ジャンプ台」を作る方法についてのメモです。
アクション系のゲームでは、キャラクターを空中に跳ね上げる「ジャンプ台」が登場することがあります。
今回は、通常のジャンプより高く「ヒト」を飛ばせるギミックを作ってみます。
「スライド連結」の設定方法
まずは、「ジャンプ台」の基本動作から作成していきます。
「ヒトノードン」や「カメラノードン」の基本操作に関しては、省略します。
プログラム画面で、「直方体」を2個と、「スライドれんけつ」の「Yスライド」を呼び出しましょう。
用意するノードン | 分類 |
---|---|
直方体 | モノ |
Yスライド | モノ |
「直方体」の一つは、ジャンプ台の「土台」として使用します。
設定画面を開き、「動く・こわれる・こわす」を、OFFに。
土台部分は、動かないように固定されている点が重要で、「見える・当たる」の設定に関しては、どちらでも問題ありません。
この土台を、「Yスライド」の「下の連結ポート」と連結します。
もう一方の「直方体」は、「ヒト」を空中に飛ばす、「踏み台」になります。
設定画面を開き、「ふるまい」の「見える・当たる・動く」だけを、ONに。
「れんけつ面」を「自分:Y- 連結先:Y+」に変更します。
こちらは、「Yスライド」の「上の連結ポート」に連結します。
「直方体」は、「ヒト」が飛び乗りやすい幅・高さであれば、好きなサイズでOKです。
二つの直方体を繋ぐ「Yスライド」が、ジャンプ台の「バネ」の役割を果たしますが、現段階では、まだ動作しません。
「さわっているセンサー」の設定方法
次は、「ヒト」が乗ったら「ジャンプ台」が作動するように、修正を加えていきます。
プログラム画面に、「さわっているセンサー」を追加します。
追加するノードン | 分類 |
---|---|
さわっているセンサー | モノ |
「さわっているセンサー」の出力を、「Yスライド」の入力ポートに接続しましょう。
センサーの形は「直方体」、出力するタイミングは「さわっていたらずっと」の設定です。
「何をチェックする?」の項目は、「ヒト」のみを選択。
センサーの大きさは、「ヒト」が「ジャンプ台」に乗った時に接触するサイズに調整します。
Y(高さ)が大きすぎると、「ヒト」が乗る前に反応してしまうため、注意が必要です。
センサーは、位置さえ合わせれば、必ずしも連結させる必要はありませんが、連結する場合は、「土台」の直方体に繋げます。
動く方の直方体に連結すると、ジャンプ台の作動時、センサーまで一緒に移動してしまうため、正常に動作しなくなります。
これで、一応は、「ジャンプ台」が機能するようになりました。
ただし、まだ十分な高さまで、「ヒト」を飛ばすことはできません。
「ジャンプ台」の調整
「さわっているセンサー」は、何もなければ「0」を、チェック対象の「モノ」が触れると、「1」を出力します。
現状では、「Yスライド」に送られる値が「1」になるため、「踏み台」が、1mしか上昇しません。
そこで、プログラム画面に、「定数」と「けいさん (×)」を呼び出します。
追加するノードン | 分類 |
---|---|
定数 | 入力 |
けいさん (×) | 中間 |
「さわっているセンサー」と「Y スライド」の接続を解除し、「けいさん(×)」の入力ポートに繋ぎ直します。
「定数」は、とりあえず「3」に変更し、「けいさん(×)」の、もう一方の入力ポートに接続。
そして、「けいさん(×)」の出力ポートを、「Y スライド」の入力に繋げます。
「定数」は、スライドの移動量を決定する値で、ジャンプ台の「バネの強さ」と言い換えることもできます。
センサー反応時、「Y スライド」に「3」が送信されるので、以前より高くジャンプできるはずですが…ゲーム画面で確認すると、それほど大きな変化は見られないと思います。
現状では、さらに「定数」の値を増やしても、効果がないはずです。
これは、「ジャンプ台」の作動時、急上昇した「ヒト」が「さわっているセンサー」から離れるため、「スライド」が一瞬で元の状態に戻ってしまうことが原因となっています。
そこで、台に乗った「ヒト」がセンサーから離れた後も、少しの間だけ、「Y スライド」に値が送信されるように手を加えます。
プログラム画面に、「タイマーノードン」を呼び出しましょう。
追加するノードン | 分類 |
---|---|
タイマー | 中間 |
「さわっているセンサー」の出力を、「タイマー」の入力ポートに繋げ直します。
「タイマー」の出力は、「けいさん(×)」の入力ポートに接続します。
「タイマー」の設定画面を開き、「何秒後に出力するか」を「0」に設定。
「出力しつづける秒数」は、「0.1」に変更します。
これで、「ジャンプ台」が作動すると、0.1秒間は、「Y スライド」に値が送信されるようになりました。
「定数」を、自分の好きな値に調整すれば、「ジャンプ台」の完成です。
50m、100mといった高さにも対応しているので、設定次第で、はるか上空まで「ヒト」を打ち上げることができます。
[ はじめてゲームプログラミング ]