本記事は『ナビつき!つくってわかる はじめてゲームプログラミング』のフリープログラミングで、前後左右に動いてAボタンで上昇するモノを作ってみたです。Aボタン長押しまたは連打で上昇し続け、Aボタンを押していない間は落下します。
イメージとしてはスーパーマリオの水中ステージのキャラクターという感じです。Aボタンで上昇/ボタンを離して落下を繰り返しながら、障害物を避けて進んでいきますよね。あの動きです。簡単なプログラミングで実現できます。
前後左右に動きAボタンで上昇する仕組み
Aボタンでモノがジャンプする
単純にAボタンでモノがジャンプする仕組みです。定数ノードンとボタンノードンを×のけいさんノードンにつなぎ、そのけいさんノードンをうごかせるモノノードンにつなぎます。
定数ノードンとボタンノードンを、直接うごかせるモノノードンに繋ぐと、定数が入力され続けるので、ゲーム画面に切り替えた瞬間から球が上昇し続けます。ボタン入力が効きません。
なので中間に「×」のけいさんノードンを置きます。けいさんノードンは入力1と入力2の数を計算した結果を出力するノードンです。今回は定数ノードンとボタンノードンを繋いでいるので、入力1に設定した定数、設定2に0(ゼロ)が入力されます。「×」の計算結果は当然0になるので、ボタンを押していない状態ではシグナルが「0」となり、うごかせるモノノードンは動きません。
では何故ボタンを押すと動くのかというと、ボタンノードンは0か1を出力するノードンで、ボタンが押された瞬間は「1」を出力するからです。そのため、ボタンが押された時、けいさんノードンの入力ポートには定数ノードンの数と「1」が入力され、掛け算された結果がモノノードンに伝わり、動く仕組みになっているというわけなんです。
定数の数が大きいほど、高く速くジャンプします。ちなみにうごかせるモノノードンの「モード」は「速度」です。加速度だととんでもない速さで飛んでいきます。
前後左右の動きも、同じ要領で作っています。
これで前後左右に動き、Aボタンでジャンプするモノができました。ボタン長押しで上昇し続けます。このうごかせるモノノードンの「ふるまい」の見えるをオフにして、テクスチャノードンを貼りつければ、それでゲームのキャラクターとして成立するはずです。
旋回しながら飛ぶ仕組みに改造する
ここまでの仕組みでキャラクターの動きは十分なのですが、球の飛び方が素直すぎる気がしたので、まわせるモノノードンをれんけつして、旋回しながら飛ぶ仕組みに改造しました。
見やすいようにコードも繋ぎ直しています。これで球がAボタンで旋回しながら飛び、Lスティック操作で前後左右に動き、ボタンを離すと落下するようになりました。落下した後は球の回転に合わせて床を転がります。
余計な動きかもしれませんが、これはこれで何かに使えそうです。
ゲームの中に取り入れるには
前後左右に動くので、3D空間のステージでも使えると思いますが、キャラクターが自由すぎるとステージ作りがめちゃくちゃ大変になるので、作業工程や時間などを考えると、前後への動きは解除して、横スクロールゲームの主人公にするのが一番かもしれません。
例えば触れると壊れるセンサーの仕組みを床や天井に設置し、床に触れそうになったらAボタン連打または長押しで上昇。天井に触れそうになったらボタンを離して、障害物を避けながらゴールを目指す横スクロール。ありがちですが、そういうゲームに今回のキャラクターが起用できます。
最後に
最後にAボタンで上昇するキャラクター作りの要点をまとめておしまいです。
- ×のけいさんノードンに定数ノードンとAのボタンノードンを繋ぐ
- けいさんノードンをうごかせるモノノードンにつなぐ
- Aボタンを入力するとシグナルが出てモノノードンがジャンプする
- まわせるモノノードンとうごかせるモノノードンを連結すれば、旋回しながら飛ぶ球になる
設置したモノが思い通りに動き出すと楽しくなりますよね。ちょっとずつ複雑な仕組みも作れるようになりたいです。
(そう言えば似たようなことノードンガイドでやらなかったか?)と思いつつ、以上、前後左右に動きAボタンで上昇するキャラクターを作ってみたでした。
本記事に使用しているゲーム画像や著作権および商標権、その他知的財産権は、当該コンテンツの提供元に帰属します。© Nintendo
コメント