Speakedraw(3) – 反射角度


前回からの続きです。

関数「move」からも呼ばれていますが、前回説明したisTouchでも出てくる関数「setAngle」を解説します。
こちらは見ての通りオブジェクトが進む角度を設定します。壁にぶつかったり、他のオブジェクトと接触した時に進行方向が変わるときに使います。ただしこちらは垂直面で接触した際に設定される反射角です。
元の角度が正数の場合は180度を減算、負数の場合は-180度減算します。
例)
30度の場合
30 – 180 = -150度
-150度の場合
-150 – (-180) = 30度 ※-と-で実際は加算になります。

また水平面で接触した場合は元の角度に-1をかけることで反射角が設定できます。
30度の場合は-30度、120度の場合は-120度になります。
動作するプログラムはこちらです。

続いては色を変化させる関数changeColorです。
ここではRGBをランダムに設定することで塗りつぶす色と線の色を設定しています。
RGBの各値を16進数に変換するツールとしてこちらを利用しています。

  • 塗りつぶしのRGBのRの値をランダムに取得。
  • 塗りつぶしのRGBのGの値をランダムに取得。
  • 塗りつぶしのRGBのBの値をランダムに取得。
  • 透明度を0.1から1の間でランダムに設定。
  • 塗りつぶしの色を設定。
  • 透明度を設定。
  • 線のRGBのRの値をランダムに取得。
  • 線のRGBのGの値をランダムに取得。
  • 線のRGBのBの値をランダムに取得。
  • 線の色を設定。

こんな感じで色を入れ替えていきます。

次回はこのプログラムで一番苦労したオブジェクトが移動する線(壁の端から端までの軌跡)を描画する部分を解説したいと思います。