オブジェクトを動かす2先ほど書いたプログラムについて解説します。 1:extends SpriteChar; 2: 3:while(x<$screenWidth) { 4: x+=1; 5: update(); 6:}
もう少し複雑な動きをするオブジェクトを作ってみましょう オブジェクトを作るを参考に、新しいオブジェクトを作成します 新しいオブジェクトをダブルクリックして、次のように入力します(先頭の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;}
if (y>$screenHeight) ... これは、もし( if )yが画面下端の座標($screenHeight)より大きくなったら、つまり yが画面下端より下になったら、その後ろの{とで囲まれた部分を実行しなさい という意味です。 そして、その{と}で囲まれた部分 ... {y=$screenHeight; vy=-vy;} これは、yを$screenHeightにして、下にはみ出ないようにします。 さらにvyの符号を反転(=移動方向のy成分を反転)します。 この「もし~なら~する」という記述はif文と呼ばれ、今後もよく出てくるので覚えておいてください 書式: if (条件) 処理 条件に書いた式が真であるときだけ処理を行います |