home *** CD-ROM | disk | FTP | other *** search
/ Encyklopedia Omnia / Planeta.iso / data / c_common.cst / 00046_Script_swingZoom < prev    next >
Text File  |  2000-11-14  |  2KB  |  51 lines

  1. on swingZoom pNS, pPanAngle, pTilt, pFov, pTime, pDir
  2.   global gSwingIncr, gOldTempo, gLastTicks, gSwingExtent, gNumStep, gTiltExtent, gFovExtent
  3.   
  4.   if voidP(gSwingIncr) then
  5.     -- calcola il numero di steps
  6.     set gNumStep = pTime * (the frameTempo)
  7.     
  8.     -- calcola gli extent
  9.     set p1 = the panAngle of sprite pNS
  10.     set p2 = pPanAngle
  11.     if pDir = #right then
  12.       set gSwingExtent = abs(p2-p1)
  13.     else
  14.       set gSwingExtent = 360-abs(p2-p1)
  15.     end if
  16.     set gTiltExtent = pTilt - the TiltAngle of sprite pNS
  17.     set gFovExtent = pFov - the FieldOfView of sprite pNS
  18.     
  19.     -- determina i passi di swing
  20.     set gSwingIncr = gSwingExtent / gNumStep
  21.     set tiltIncr = gTiltExtent / gNumStep
  22.     set fovIncr = gFovExtent / gNumStep
  23.   else
  24.     -- dalla seconda volta in poi...
  25.     set diff = the ticks - gLastTicks
  26.     set frameDuration = 60/(the frameTempo)
  27.     set gSwingIncr = (gSwingExtent / gNumStep) * (diff/frameDuration)
  28.     set tiltIncr = (gTiltExtent / gNumStep) * (diff/frameDuration)
  29.     set fovIncr = (gFovExtent / gNumStep) * (diff/frameDuration)
  30.   end if
  31.   
  32.   if pDir = #right then
  33.     set incr = (-1) * gSwingIncr
  34.   else
  35.     set incr = gSwingIncr
  36.   end if
  37.   
  38.   set pan = the panAngle of sprite pNS
  39.   if abs(pan - pPanAngle) > gSwingIncr then
  40.     set the panAngle of sprite pNS to pan + incr
  41.     set the TiltAngle of sprite pNS to tiltIncr + the TiltAngle of sprite pNS
  42.     set the FieldOfView of sprite pNS to fovIncr + the FieldOfView of sprite pNS
  43.     set retVal = 1
  44.   else
  45.     set gSwingIncr = VOID
  46.     set retVal = 0
  47.   end if
  48.   
  49.   set gLastTicks = the ticks
  50.   return retVal
  51. end