sexta-feira, 9 de julho de 2010

Script para união das rodas com o corpo do carro

Wellington Moreira da Silva

Bom dia, vou postar hoje o script que junta as rodas com o corpo do veículo, em tempo de execução. Isso tem que ser feito porque a movimentação do carro é controlada através das rodas.

def main():
   carro = Carro_Objeto()
   carroID = Carro_Constraint(carro)
   rodaObj = Rodas()
   rodaPos = RodasPosicao()
   rodaRadius = RodasRadius()
   rodaAlturaSuspensao = RodasAlturaSuspensao()
   rodaAnguloSuspensao = RodasAnguloSuspensao()
   rodaEixo = RodasEixo()
   rodaVirar = RodasVirar()
   Add_Rodas(carroID, rodaObj, rodaPos, rodaAnguloSuspensao, rodaEixo,
rodaAlturaSuspensao, rodaRadius, rodaVirar)

def Carro_Objeto():

   controlador = GameLogic.getCurrentController()
   carro = controlador.owner
   return carro

def Carro_Constraint(carro):

   import PhysicsConstraints
   carro_PhysicsID = carro.getPhysicsId()
   carro_Constraint = PhysicsConstraints.createConstraint(carro_PhysicsID,
0, 11)
   constraint_ID = carro_Constraint.getConstraintId()
   carroID = PhysicsConstraints.getVehicleConstraint(constraint_ID)
   carro["carroID"] = carroID
   return carroID

def Rodas():

   import GameLogic
   cena = GameLogic.getCurrentScene()
   roda0 = cena.getObjectList()["OBRodaFE"]
   roda1 = cena.getObjectList()["OBRodaFD"]
   roda2 = cena.getObjectList()["OBRodaTE"]
   roda3 = cena.getObjectList()["OBRodaTD"]
   return (roda0, roda1, roda2, roda3)

def RodasPosicao():

   roda0 = [ -2.0, 3.0, 0.0]
   roda1 = [ 2.0, 3.0, 0.0]
   roda2 = [ -2.0, -3.0, 0.0]
   roda3 = [ 2.0, -3.0, 0.0]
   return (roda0, roda1, roda2, roda3)

def RodasRadius():

   return (0.75,0.75,0.75,0.75)

def RodasAlturaSuspensao():

   return (0.2,0.2,0.2,0.2)

def RodasAnguloSuspensao():

   return ([0.0,0.0,-1.0],[0.0,0.0,-1.0],[0.0,0.0,-1.0],[0.0,0.0,-1.0])

def RodasEixo():

   return ([ -1.0, 0.0, 0.0], [ -1.0, 0.0, 0.0], [ -1.0, 0.0, 0.0], [ -1.0, 0.0, 0.0])

def RodasVirar():

   return (True, True, False, False)

def Add_Rodas(carroID, rodaObj, rodaPos, rodaAnguloSuspensao,
rodaEixo, rodaAlturaSuspensao, rodaRadius, rodaVirar):

   for x in range(0,4):
     carroID.addWheel( rodaObj[x], rodaPos[x], rodaAnguloSuspensao[x],
rodaEixo[x], rodaAlturaSuspensao[x], rodaRadius[x], rodaVirar[x] )

main()

Nenhum comentário:

Postar um comentário