Scratchでゲーム制作するのは楽しいですね!今回はそのゲーム制作で必要になってくるかもしれないテクニックについてお教えします。
二次元のゲーム制作をしていると、ゲーム性によってはキャラクターが端に到達したらもう片側の端から出現させたい!と考えている方はいませんか。
下の動画をご覧ください。
今回はこのように端から端に瞬間移動できるプログラムを作っていきましょう!
まず最初にキャラクターを動かすプログラムを組みます。
ここがもうすでに完成している方は次の見出しまでスキップしてください。
今回は一番単純な横移動だけをするプログラムを作ります。
下のように動きます。
このように横移動さえできてればOKです!では本題の瞬間移動のやり方をご紹介します。
今、横移動のプログラムを作っただけでは端に当たるとそこで止まってしまいますね。
そこで下のプログラムを作って追加してみましょう。
たったこれだけのプログラムで端から端へ移動することができます。
キャラクターが端に到達した時、キャラクターのx座標に注目します。
ステージの横幅は480ありますね。左端はx=-240、右端はx=240です。
これを利用すると、
これを条件に使い、反対側の端に座標で強制的に位置を変えれば瞬間移動しているように見えます。
横移動だけのゲームなら下のようなプログラムでも瞬間移動を行うことができます。
「端に触れたら」というもっとわかりやすいブロックを使うことができます。
少し厄介なのが、右端か左端かこの条件では判別ができません。そこで、右でも左でもいいように移動させる座標をプログラムしないといけません。
上のようなブロックがx座標に入っているのに気づきましたか?
−1を掛け算で使うと、
−1× A=−A、−1×(−A)=A
という性質があります。
これを使えば、右端に来た時 x座標は240ですが、これに−1をかければ-240になり反対側の端の座標を表すことができます。逆に、左端に来たときは x座標が-240ですが、同じように−1をかけて240を作ることができます。
しかし、このプログラムは注意点が一つだけあります。
端というのは右と左の端だけではありません。上と下にも端があるので、上と下の端にキャラクターが接しないというのがこのプログラムを使用する上でのお約束です。
さてさて皆さんのゲーム制作のヒントになったでしょうか。
頭でこうやりたいと思っていても、うまくプログラムにできなくて諦めてしまいそうになるかもしれませんが、絶対にうまくできる方法が必ずあります。
諦めないでゲーム制作を楽しんでください!!
Leave a Comment