Hi, here is a 2D example, hope it is what you're looking for. If you're looking for a 3d version, I don't have time to write one up right now but maybe on the weekend.
Rem Project: Dark Basic Pro Project
Rem Created: Wednesday, March 23, 2011
Rem ***** Main Source File *****
sync on : sync rate 60
// create type
type object
x as float
y as float
xspeed as float
yspeed as float
endtype
// create objects
player as object
com as object
// set player values
player.x = 100.00
player.y = 240.00
player.xspeed = 2.00
player.yspeed = 2.00
// set computer's values
com.x = 400.00
com.y = 240.00
com.xspeed = 1.00
com.yspeed = 1.00
// distance
distance as float
do
cls
// move player
if upkey()=1 then dec player.y, player.yspeed
if downkey()=1 then inc player.y, player.yspeed
if leftkey()=1 then dec player.x, player.xspeed
if rightkey()=1 then inc player.x, player.xspeed
// get distance
distance = get_distance(player.x, com.x, player.y, com.y)
// move computer towards player
if distance > 10.00
com.xspeed = sin(asin(((player.x - com.x)/distance)))
com.yspeed = cos(acos(((player.y - com.y)/distance)))
else
com.xspeed = 1.00
com.yspeed = 1.00
endif
inc com.x, com.xspeed
inc com.y, com.yspeed
text 0, 0, "You are red, use arrowkeys to move around"
ink rgb(255,0,0), 0
circle int(player.x), int(player.y), 10
ink rgb(0, 255, 0), 0
circle int(com.x), int(com.y), 10
sync
loop
function get_distance( x1 as float , x2 as float , y1 as float , y2 as float )
// distance formula
distance as float
distance = sqrt(((x1 - x2)^2) + ((y1 - y2)^2))
endfunction distance
A clever person solves a problem, a wise person avoids it - Albert Einstein