カメラの上下角取得 †
■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