今回はボールを壁に45度の角度で当てるテストアプリです。
テストアプリを起動するとUIはこちらの様になっています。既にボウルは45度の角度で動いていて、キャンバス(Canvas)の上下左右端でバウンドします。それも45度です。スライダーでボールの大きさを変更でき、矢印は各ボールの移動中に45度での力を加える事ができます。
実際の様子はこちらの動画で確認できます。
これを実現している「Blocks」はこちらです。
ボールの移動方向を指定する「Heading」Propertyは、水平右方向を0度とし時計の逆回りに角度を指定します。そこでアプリの処理上で「Angle」変数に対して時計回りで見る角度をマイナス角度として処理を作っています。
ボールが上下左右端の何れかに当たると、ライブラリー「EdgeReached」は「edge」で上端:1・下端:-1・右端:3・左端:-3を返します。この「edge」を判別して当たった後の方向(角度)を計算しています。