このWikiは古くなりました:新しいWikiへ移動

←前 次→ チュートリアルトップ

オブジェクトを動かす2

先ほど書いたプログラムについて解説します。

 
1:extends SpriteChar;
2:
3:while(x<$screenWidth) {
4: x+=1;
5: update();
6:}
  • 1行目は「おまじない」だと思ってとりあえず無視してください。
  • 3行目は「自分のx座標が画面右端の座標($screenWidth)より小さい($screenWidthより左側である)間、で囲まれた処理(4,5行目)を実行しなさい」という意味になります(参考:while文)
  • 4行目は、x座標を1増加、つまり右に1ドット分移動します
  • 5行目は、画面のかきかえを行います(参考:updateメソッド)

もう少し複雑な動きをするオブジェクトを作ってみましょう

オブジェクトを作るを参考に、新しいオブジェクトを作成します

class2.png

新しいオブジェクトをダブルクリックして、次のように入力します(先頭のextends SpriteChar;は自動的に入力されているので新たに入力する必要はありません)

 
extends SpriteChar;
while(x<$screenWidth) {
 y+=vy;
 vy+=0.1;
 if (y>$screenHeight) {y=$screenHeight; vy=-vy;}
 x+=1;
 update();
}

実行してみましょう。オブジェクトが跳ねながら右に移動する様子が見えたと 思います。

さっきと違うのは、この3行が追加されたところです

 
4: y+=vy;
5: vy+=0.1;
6: if (y>$screenHeight) {y=$screenHeight; vy=-vy;}
  • 4行目は、自分のy座標をvyだけ加算します。つまりvyはyの速度をあらわします
  • 5行目は、vyに0.1を加えます。yの速度に0.1を加えるので、0.1はyの加速度(重力)をあらわします。
  • 6行目は、跳ね返りの処理です。まず、
 if (y>$screenHeight) ...

これは、もし( if )yが画面下端の座標($screenHeight)より大きくなったら、つまり yが画面下端より下になったら、その後ろの{とで囲まれた部分を実行しなさい という意味です。

 そして、その{と}で囲まれた部分

 ... {y=$screenHeight; vy=-vy;}

これは、yを$screenHeightにして、下にはみ出ないようにします。 さらにvyの符号を反転(=移動方向のy成分を反転)します。

この「もし~なら~する」という記述はif文と呼ばれ、今後もよく出てくるので覚えておいてください

書式:

 if (条件) 処理

条件に書いた式が真であるときだけ処理を行います

←前 次→ チュートリアルトップ


添付ファイル: fileclass2.png 687件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-11-14 (火) 21:24:37 (2349d)