home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Beyond the 3rd Dimension
/
BEYOND3D.bin
/
ai
/
aifrog.ait
< prev
next >
Wrap
Text File
|
1997-09-11
|
2KB
|
66 lines
: Flying AI / smooth taking off and landing (slow)up-(fast)flat-(slow)down flog
: STATE Init // initialization STATE
: RUN RNDREG 0 20 // now generate a random vector
: RUN SUBREG 0 10 // x = -10..10
: RUN SETREG 1 0.1 // to prevent x=z =0
: RUN RNDREG 2 20
: RUN SUBREG 2 10 // z = -10..10
: RUN NORMVEC 0 0.3 // length = 0.1
: RUN SETVAL POSX REG0
: RUN SETVAL POSY 0
: RUN SETVAL POSZ REG2
: RUN SETVAL ORNX 0
: RUN SETVAL ORNY 1.0
: RUN SETVAL ORNZ 0
: RUN ORIENT 1000 // orient to new driection in 1 sec using ORN+POS
: RUN SETREG 4 TIME // used for timer
: RUN ADDREG 4 1000
: RUN SETSTATE Move 0
: STATE Move
: IF GT REG4 TIME THEN RETURN 0 0 ENDIF // wait first
: RUN SETVAL POSX REG0
: RUN SETVAL POSY 0
: RUN SETVAL POSZ REG2
: RUN MOVE -1.0 0 // use POSX-Z as goal osistion and duration -1
: RUN SETREG 4 TIME // used for timer
: RUN ADDREG 4 1000
: RUN SETSTATE Stop 0
: STATE Stop
: IF OUTRANGE POSX POSZ THEN GOTOLABEL RandomWalk 0 ENDIF
: IF COLLIDE 0 0 THEN NULLOP 0 0 ELSE GOTOLABEL nocollide 0 ENDIF
* RandomWalk
: RUN MOVEBACK 6 0
: RUN RNDREG 0 20 // now generate a random vector
: RUN SUBREG 0 10 // x = -10..10
: RUN SETREG 1 0.1 // to prevent x=z =0
: RUN RNDREG 2 20
: RUN SUBREG 2 10 // z = -10..10
: RUN NORMVEC 0 0.2 // slower
: RUN SETVAL POSX REG0
: RUN SETVAL POSY 0
: RUN SETVAL POSZ REG2
: RUN MOVE -1.0 0 // use POSX-Z as goal osistion and duration -1
: RUN SETVAL ORNX 0
: RUN SETVAL ORNY 1.0
: RUN SETVAL ORNZ 0
: RUN ORIENT 200 // orient to new driection in 1 sec using ORN+POS
* nocollide
: RUN SAVEPOS 6 0 // save current posiition to reg 6-8
: IF GT REG4 TIME THEN RETURN 0 0 ENDIF // wait first
: RUN SETVAL POSX 0
: RUN SETVAL POSY 0
: RUN SETVAL POSZ 0
: RUN MOVE -1.0 0 // use POSX-Z as goal osistion and duration -1
: RUN SETREG 4 TIME // used for timer
: RUN ADDREG 4 500
: RUN SETSTATE Move 0
: END