Hoicos Blog

Author: あぼかど

画面の端から端までキャラクターを瞬間移動させる方法

Hoicosプログラミング教室

Scratchのゲーム制作で必要になるかもしれないテクニックをご紹介
57d4ceadb442a17ad4ee138e28ec4e52 1024x639 - 画面の端から端までキャラクターを瞬間移動させる方法-hoicos%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%9f%e3%83%b3%e3%82%b0%e6%95%99%e5%ae%a4-自由研究, Scratch, 小学生

Scratchでゲーム制作するのは楽しいですね!今回はそのゲーム制作で必要になってくるかもしれないテクニックについてお教えします。

二次元のゲーム制作をしていると、ゲーム性によってはキャラクターが端に到達したらもう片側の端から出現させたい!と考えている方はいませんか。

下の動画をご覧ください。

今回はこのように端から端に瞬間移動できるプログラムを作っていきましょう!

移動のプログラムを作る

まず最初にキャラクターを動かすプログラムを組みます。

ここがもうすでに完成している方は次の見出しまでスキップしてください。

今回は一番単純な横移動だけをするプログラムを作ります。

10eb01b73f30f0f539f069974b4f9912 - 画面の端から端までキャラクターを瞬間移動させる方法-hoicos%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%9f%e3%83%b3%e3%82%b0%e6%95%99%e5%ae%a4-自由研究, Scratch, 小学生

下のように動きます。

このように横移動さえできてればOKです!では本題の瞬間移動のやり方をご紹介します。

サンプルプログラム1

今、横移動のプログラムを作っただけでは端に当たるとそこで止まってしまいますね。

そこで下のプログラムを作って追加してみましょう。

99b7a2deebd20749c70c02d69d591d13 - 画面の端から端までキャラクターを瞬間移動させる方法-hoicos%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%9f%e3%83%b3%e3%82%b0%e6%95%99%e5%ae%a4-自由研究, Scratch, 小学生

たったこれだけのプログラムで端から端へ移動することができます。

プログラムの解説

キャラクターが端に到達した時、キャラクターのx座標に注目します

ステージの横幅は480ありますね。左端はx=-240、右端はx=240です。

これを利用すると、

  • 左端に行った時 → x座標が-240より小さくなった
  • 右端に行った時 → x座標が240より大きくなった

これを条件に使い、反対側の端に座標で強制的に位置を変えれば瞬間移動しているように見えます。

サンプルプログラム2

横移動だけのゲームなら下のようなプログラムでも瞬間移動を行うことができます。

d7f9be31c38ba88fa93f233e3530728c - 画面の端から端までキャラクターを瞬間移動させる方法-hoicos%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%9f%e3%83%b3%e3%82%b0%e6%95%99%e5%ae%a4-自由研究, Scratch, 小学生

「端に触れたら」というもっとわかりやすいブロックを使うことができます。

少し厄介なのが、右端か左端かこの条件では判別ができません。そこで、右でも左でもいいように移動させる座標をプログラムしないといけません。

b6f42970165be0e0ff71f999ee283077 - 画面の端から端までキャラクターを瞬間移動させる方法-hoicos%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%9f%e3%83%b3%e3%82%b0%e6%95%99%e5%ae%a4-自由研究, Scratch, 小学生

上のようなブロックがx座標に入っているのに気づきましたか?

−1を掛け算で使うと、

−1× A=−A、−1×(−A)=A

という性質があります。

これを使えば、右端に来た時 x座標は240ですが、これに−1をかければ-240になり反対側の端の座標を表すことができます。逆に、左端に来たときは x座標が-240ですが、同じように−1をかけて240を作ることができます。

しかし、このプログラムは注意点が一つだけあります。

端というのは右と左の端だけではありません。上と下にも端があるので、上と下の端にキャラクターが接しないというのがこのプログラムを使用する上でのお約束です。

最後に

さてさて皆さんのゲーム制作のヒントになったでしょうか。

頭でこうやりたいと思っていても、うまくプログラムにできなくて諦めてしまいそうになるかもしれませんが、絶対にうまくできる方法が必ずあります。

諦めないでゲーム制作を楽しんでください!!


この記事がいいと思ったら↓のシェアボタンから

Leave a Comment

入力エリアすべてが必須項目です。メールアドレスが公開されることはありません。

内容をご確認の上、送信してください。