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()
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