home *** CD-ROM | disk | FTP | other *** search
/ Beyond the 3rd Dimension / BEYOND3D.bin / ai / aifrog.ait < prev    next >
Text File  |  1997-09-11  |  2KB  |  66 lines

  1. : Flying AI / smooth taking off and landing (slow)up-(fast)flat-(slow)down  flog
  2.       
  3. : STATE Init // initialization STATE
  4.      : RUN RNDREG 0 20  // now generate a random vector
  5.      : RUN SUBREG 0 10  // x = -10..10
  6.      : RUN SETREG 1 0.1   // to prevent x=z =0
  7.      : RUN RNDREG 2 20
  8.      : RUN SUBREG 2 10  // z = -10..10
  9.      : RUN NORMVEC 0 0.3  // length = 0.1
  10.  
  11.      : RUN SETVAL POSX REG0
  12.      : RUN SETVAL POSY 0
  13.      : RUN SETVAL POSZ REG2
  14.      : RUN SETVAL ORNX 0
  15.      : RUN SETVAL ORNY 1.0
  16.      : RUN SETVAL ORNZ 0
  17.      : RUN ORIENT 1000  // orient to new driection in 1 sec  using ORN+POS
  18.  
  19.      : RUN SETREG 4 TIME  // used for timer
  20.      : RUN ADDREG 4 1000
  21.      : RUN SETSTATE Move 0
  22.  
  23. : STATE Move
  24.      : IF GT REG4 TIME THEN RETURN 0 0 ENDIF  // wait first
  25.      : RUN SETVAL POSX REG0
  26.      : RUN SETVAL POSY 0
  27.      : RUN SETVAL POSZ REG2
  28.      : RUN MOVE   -1.0 0  // use POSX-Z as goal osistion and duration -1
  29.      : RUN SETREG 4 TIME  // used for timer
  30.      : RUN ADDREG 4 1000
  31.      : RUN SETSTATE Stop 0
  32.  
  33. : STATE Stop
  34.      : IF OUTRANGE POSX POSZ THEN GOTOLABEL RandomWalk 0 ENDIF
  35.      : IF COLLIDE 0 0 THEN NULLOP 0 0 ELSE GOTOLABEL nocollide 0 ENDIF
  36. * RandomWalk
  37.      : RUN MOVEBACK 6 0  
  38.      : RUN RNDREG 0 20  // now generate a random vector
  39.      : RUN SUBREG 0 10  // x = -10..10
  40.      : RUN SETREG 1 0.1   // to prevent x=z =0
  41.      : RUN RNDREG 2 20
  42.      : RUN SUBREG 2 10  // z = -10..10
  43.      : RUN NORMVEC 0 0.2  // slower
  44.      : RUN SETVAL POSX REG0
  45.      : RUN SETVAL POSY 0
  46.      : RUN SETVAL POSZ REG2
  47.      : RUN MOVE   -1.0 0  // use POSX-Z as goal osistion and duration -1
  48.      : RUN SETVAL ORNX 0
  49.      : RUN SETVAL ORNY 1.0
  50.      : RUN SETVAL ORNZ 0
  51.      : RUN ORIENT 200  // orient to new driection in 1 sec  using ORN+POS
  52.  
  53. * nocollide
  54.      : RUN SAVEPOS 6 0  // save current posiition to reg 6-8
  55.      : IF GT REG4 TIME THEN RETURN 0 0 ENDIF  // wait first
  56.      : RUN SETVAL POSX 0
  57.      : RUN SETVAL POSY 0
  58.      : RUN SETVAL POSZ 0
  59.      : RUN MOVE   -1.0 0  // use POSX-Z as goal osistion and duration -1
  60.      : RUN SETREG 4 TIME  // used for timer
  61.      : RUN ADDREG 4 500
  62.      : RUN SETSTATE Move 0
  63.  
  64. : END
  65.  
  66.