All pastes #977225 Raw Edit

Anonymous

public text v1 · immutable
·published 2008-04-08 18:25 UTC
rendered paste body
`versual's simple ai

`make variable's
global player  as integer
global ai  as integer
global waypoint   as integer
global waypointup   as integer
global distance as word
sync on
sync rate 30
`a simple ai
player = 1
ai = 2
waypoint = 3
waypointup = 4

`the player
make object cube player,1
`color player
position object player,-7,-7,0
color object player,rgb(0,0,255)
Set object collision to boxes player
`the ai
make object cube ai,1
`color ai
color object ai,rgb(255,0,0)
`position ai
position object ai,-15,0,0
Set object collision to boxes ai
`waypoint
make object cube waypoint,1
position object waypoint,9,0,0
color object waypoint,rgb(0,255,0)
Set object collision to boxes waypoint

`waypoint 3
make object cube waypointup,1
position object waypointup,-1,7,0
color object waypointup,rgb(0,255,0)
Set object collision to boxes waypointup

`position camera in 3d world
position camera 0,0,-20

point object ai,object position x(waypoint),object position y(waypoint),object position z(waypoint)
do
move object ai,0.1
go()
if object collision(ai,waypoint)
   point object ai,object position x(player),object position y(player),object position z(player)
   move object ai,0.1
   endif

if object collision(ai,player)
   point object ai,object position x(waypointup),object position y(waypointup),object position z(waypointup)
   move object ai,0.1
endif

if object collision(ai,waypointup)
   point object ai,object position x(waypoint),object position y(waypoint),object position z(waypoint)
   move object ai,0.1
endif
`making ai follow player
`player control's
if rightkey()=1 then move object right player,1
if leftkey()=1 then move object left player,1
if upkey()=1 then move object up player,1
if downkey()=1 then move object down player,1

text 240,10,"Versual's simple 3 waypoint ai."
sync
loop


function go()
x1 = object position x(player)
y1 = object position y(player)
z1 = object position z(player)

x2 = object position x(ai)
y2 = object position y(ai)
z2 = object position z(ai)

distance = sqrt((x1-x2)^2 + (y1-y2)^2 + (z1-z2)^2)
if (ai > distance)

   point object ai,object position x(player)+x1,object position y(player)+y1,object position Z(player)+z1
   move object ai, 0.1
endif
endfunction 1