カメラの上下角取得

Last-modified: 2015-05-03 (日) 21:17:48

カメラの上下角取得 †
■gungnir.csで使用していたコードを最適化した物

    :
068D: get_camera_position_to 0@ 1@ 2@
068E: get_camera_target_point_to 3@ 4@ 5@
0509: 0@ = distance_between_XY 0@ 1@ and_XY 3@ 4@
0063: 5@ -= 2@ // (float)
0087: 1@ = 5@ // (float)
gosub @ATAN
000F: 2@ -= 270.0
(2@に前方を0°とした角度が得られる)
    :
:ATAN
0509: 2@ = distance_between_XY 0@ 1@ and_XY 0.0 0.0
0073: 0@ /= 2@ // (float)
0073: 1@ /= 2@ // (float)
0509: 2@ = distance_between_XY 0@ 1@ and_XY 0.0 1.0
for 3@ = 0 to 15

   0017: 2@ /= 2.0
   006B: 2@ *= 2@ // (float)
   0087: 1@ = 2@ // (float)
   0013: 2@ *= -1.0
   000B: 2@ += 1.0
   01FB: 2@ = square_root 2@
   0013: 2@ *= -1.0
   000B: 2@ += 1.0
   006B: 2@ *= 2@ // (float)
   005B: 2@ += 1@ // (float)
   01FB: 2@ = square_root 2@

end
0013: 2@ *= 65536.0
0017: 2@ /= 3.14159265
0013: 2@ *= 180.0
if
0021: 0@ > 0.0
then

   0013: 2@ *= -1.0
   000B: 2@ += 360.0

end
return