well, sounds kinda like a flight sim targeting thing. Wrote a simple test using pick object, see this thread:
http://forum.thegamecreators.com/?m=forum_view&t=142740&b=1
sync on
sync rate 60
autocam off
set display mode 1024,768,32
global c_mode$
c_mode$ = "Weapons Safe"
position camera 0,0,0,-100
rem the enemy plane
make object cube 1,5
rem enemy ground target
make object cube 2,10
position object 2,-50,-100,100
do
text 10,10,"Combat mode : " + c_mode$
camera_angle# = move_camera(wrapvalue(camera_angle#))
enemy_angle# = move_enemy(wrapvalue(enemy_angle#))
move_reticle(1)
sync
loop
function move_enemy(angle#)
position object 1,0, sin(angle#) * 100, 100
inc angle#,.10
endfunction angle#
function move_reticle(id)
if id = 0
x_pos = screen width() / 2
y_pos = screen height() / 2
c_mode$ = "Weapons Safe"
air_to_air(x_pos,y_pos)
line x_pos,y_pos, object screen x(1), object screen y(1)
circle x_pos,y_pos,30
endif
if id = 1
c_mode$ = "Air to air"
x_pos = screen width() / 2
y_pos = screen height() / 2
air_to_air(x_pos,y_pos)
line x_pos,y_pos, object screen x(1), object screen y(1)
circle object screen x(id),object screen y(id),8
text object screen x(id) - 10, object screen y(id) + 30, "Obj Hit : " + str$(pick object(x_pos,y_pos,1,1))
text object screen x(id) - 10, object screen y(id) - 30, "Obj Distance : " + str$(get pick distance())
endif
if id = 2
c_mode$ = "Air to ground"
x_pos = screen width() / 2
y_pos = screen height() / 2
air_to_air(x_pos,y_pos)
line x_pos,y_pos, object screen x(id), object screen y(id)
circle object screen x(id),object screen y(id),8
text object screen x(id) - 10, object screen y(id) + 30, "Enemy Barracks"
endif
endfunction
function air_to_air(x_pos,y_pos)
circle x_pos,y_pos,40
endfunction
function move_camera(angle#)
if upkey()
xrotate camera angle#
inc angle#,.5
endif
if downkey()
xrotate camera angle#
dec angle#,.5
endif
if leftkey()
turn camera left 1
endif
if rightkey()
turn camera right 1
endif
endfunction angle#