home *** CD-ROM | disk | FTP | other *** search
/ PC PowerPlay 56 / CDPowerplay56Disc2.iso / demos / blade / data1.cab / Program_Executable_Files / Lib / Blades.py < prev    next >
Encoding:
Python Source  |  2000-10-27  |  1.7 KB  |  74 lines

  1. import Traps_C
  2.  
  3. MESSAGE_START_WEAPON         =    7
  4. MESSAGE_STOP_WEAPON          =    8
  5.  
  6.  
  7. class BLADES:
  8.     def __init__(self,name,spline,vel_rot,finish_func):
  9.         self.time = 0
  10.         self.state = 0
  11.         self.vel_rot = vel_rot
  12.         self.finish_func = finish_func
  13.         self.blade_spline = spline
  14.         self.last_time = 0
  15.         self.name = name
  16.  
  17.     def StartBlade(self):
  18.         self.time = 0
  19.         self.last_time = Bladex.GetTime()
  20.  
  21.     def StopBlade(self):
  22.         self.state = 0
  23.  
  24.     def PlayBlade(self):
  25.         if (self.state <> 1):
  26.             self.state = 1
  27.             self.last_time = Bladex.GetTime()
  28.             blade = Bladex.GetEntity(self.name)
  29.             blade.Solid=0
  30.             blade.MessageEvent(MESSAGE_START_WEAPON,0,0)
  31.             blade.TimerFunc=BladeTimerFunc
  32.             blade.SubscribeToList("Timer60")
  33.  
  34.     def AddNode(self,pos,tang_i,tang_f,time):
  35.         Traps_C.AddSplineNode(self.blade_spline,pos,tang_i,tang_f,time)
  36.  
  37. def CreateBlade(name,vel_rot,finish_func):
  38.     spline = Traps_C.CreateSpline()
  39.  
  40.     blade = BLADES(spline,vel_rot,finish_func)
  41.  
  42.     blade_e = Bladex.GetEntity(name)
  43.     blade_e.Data = blade
  44.  
  45.  
  46. Bladex.CreateTimer("Timer60",1.0/60.0)
  47.  
  48. def Blade0TimerFunc(blade_name,time):
  49.     blade_e = Bladex.GetEntity(blade_name)
  50.     blade = blade_e.Data
  51.  
  52.     itime = time - blade.last_time
  53.     blade.time = blade.time + itime
  54.     blade.last_time = time
  55.  
  56.     #chispa = Bladex.GetEntity("Chispas0")
  57.  
  58.     posnode = Traps_C.GetSplinePos(blade.blade_spline,blade.time)
  59.     blade_e.SetPosition(posnode[0],posnode[1],posnode[2])
  60.     blade_e.Rotate(0.0,1.0,0.0,blade.vel_rot,1)
  61.  
  62.     """
  63.  
  64.     #Sonido_Cuchilla0_Activada.Play(-231922.078132,-23572.057567,90102.453506,0)
  65.         blade.MessageEvent(MESSAGE_START_WEAPON,0,0)
  66.         if (stop_blades):
  67.             if(player == 0):
  68.                 StopBlade(blade,chispa)
  69.     """
  70.     #chispa.Position = blade.Position[0] + 2250, -23672, 90102
  71.  
  72.     
  73.  
  74.