←前 →実践編へ チュートリアルトップ

オブジェクトを追いかけるオブジェクト

カーソルキーで動くオブジェクト で作成したオブジェクトを追いかけるオブジェクトを作ってみます。

まず、カーソルキーで動くオブジェクト で作成したオブジェクトをクリックしてください。 オブジェクトインスペクタで、このオブジェクトの名前を確認します。 下の図では $Cursorという名前になっています。

clickCursor.png

新しくオブジェクトを作成します

createChaser.png

新しいオブジェクトをダブルクリックし、次のように入力します。

extends SpriteChar;
while(1) {
 if (x< $Cursor .x) x+=2;
 if (x> $Cursor .x) x-=2;
 if (y< $Cursor .y) y+=2;
 if (y> $Cursor .y) y-=2;
 update();
}
$Cursorの部分は、先ほど確認した[[カーソルキーで動くオブジェクト>カーソルキーで動くオブジェクト]]で作成したオブジェクトの名前にしてください。

実行させると、新しくつくったオブジェクトは、カーソルキーで動かせるオブジェクトのいる方にちかづいてきます。

プログラムの説明をします。

 if (x< $Cursor .x) x+=2;

ここででてくる $Cursor .xの読み方は「オブジェクト$Cursorのxの値」、つまり、カーソルキーでうごかせるオブジェクト( $Cursor )のx座標です。

if文の条件は

「自分のx座標が $Cursorのx座標より小さければ 」

つまり

「自分が$Cursorより左にいれば」

となります。

さらに、その条件が成り立った場合はxを増やします。つまり右に移動します。 よって

  • 「自分が$Cursorより左にいれば、右方向にうごく」 ということになります。 次の3行も同様に
  • 「自分が$Cursorより右にいれば、左方向にうごく」
  • 「自分が$Cursorより上にいれば、下方向にうごく」
  • 「自分が$Cursorより下にいれば、上方向にうごく」 ということを表します。

←前 →実践編へ チュートリアルトップ