sexta-feira, 27 de agosto de 2010

Mudança de scripts - parte 2

Wellington Moreira da Silva

Aqui vão os novos scripts de movimentação, opções do carro e para virar:

-MOVIMENTAÇÃO-

import PhysicsConstraints

cena = GameLogic.getCurrentScene()
objetos = cena.objects
carro = objetos["OBCarro"]
constraint_ID = carro["constraint_ID"]
carroID = PhysicsConstraints.getVehicleConstraint(constraint_ID)
controlador = GameLogic.getCurrentController()
Acelerador = controlador.sensors["Frente"]
Freio = controlador.sensors["Freio"]
MarchaRe = controlador.sensors["MarchaRe"]
freios = 0.0
if Acelerador.positive == True:
   aceleracao = -800.0
elif MarchaRe.positive == True:
   aceleracao = 200
elif Freio.positive == True:
   freios = 40.0
else:
   aceleracao = 10.0
carroID.applyBraking(freios, 0)
carroID.applyBraking(freios, 1)
carroID.applyBraking(freios, 2)
carroID.applyBraking(freios, 3)
carroID.applyEngineForce(aceleracao, 2)
carroID.applyEngineForce(aceleracao, 3)

-OPÇÕES DO CARRO-

import PhysicsConstraints

cena = GameLogic.getCurrentScene()
objetos = cena.objects
carro = objetos["OBCarro"]
RodaFE = objetos["OBRodaFE"]
RodaFD = objetos["OBRodaFD"]
RodaTE = objetos["OBRodaTE"]
RodaTD = objetos["OBRodaTD"]
carro.applyImpulse([0.0, 0.0, 0.0], [0.0, 0.0, 0.0])
carro_PhysicsID = carro.getPhysicsId()
carroID_Constraint = PhysicsConstraints.createConstraint(carro_PhysicsID, 0, 11)
carro["constraint_ID"] = carroID_Constraint.getConstraintId()
carroID = PhysicsConstraints.getVehicleConstraint(carro["constraint_ID"])
tirePos_FD = [-2.0, 2.0, 0.0]
tirePos_FP = [2.0, 2.0, 0.0]
tirePos_RD = [-2.0, -4.0, 0.0]
tirePos_RP = [2.0, -4.0, 0.0]
suspension_Angle = [0.0, 0.0, -1.0]
tireAxis = [-1.0, 0.0, 0.0]
suspensionFront = 0.4
suspensionBack = 0.3
tireRadius = 0.75
tireSteer_Front = True
tireSteer_Rear = False
carroID.addWheel(RodaFE, tirePos_FD, suspension_Angle, tireAxis,
suspensionFront, tireRadius, tireSteer_Front)
carroID.addWheel(RodaFD, tirePos_FP, suspension_Angle, tireAxis,
suspensionFront, tireRadius, tireSteer_Front)
carroID.addWheel(RodaTE, tirePos_RD, suspension_Angle, tireAxis,
suspensionBack, tireRadius, tireSteer_Rear)
carroID.addWheel(RodaTD, tirePos_RP, suspension_Angle, tireAxis,
suspensionBack, tireRadius, tireSteer_Rear)
carroID.setTyreFriction(10, 0)
carroID.setTyreFriction(10, 1)
carroID.setTyreFriction(10, 2)
carroID.setTyreFriction(10, 3)
carroID.setSuspensionCompression(4.0, 0)
carroID.setSuspensionCompression(4.0, 1)
carroID.setSuspensionCompression(4.0, 2)
carroID.setSuspensionCompression(4.0, 3)
carroID.setSuspensionDamping(5.0, 0)
carroID.setSuspensionDamping(5.0, 1)
carroID.setSuspensionDamping(5.0, 2)
carroID.setSuspensionDamping(5.0, 3)
carroID.setSuspensionStiffness(8.0, 0)
carroID.setSuspensionStiffness(8.0, 1)
carroID.setSuspensionStiffness(8.0, 2)
carroID.setSuspensionStiffness(8.0, 3)
carroID.setRollInfluence(0.1, 0)
carroID.setRollInfluence(0.1, 1)
carroID.setRollInfluence(0.1, 2)
carroID.setRollInfluence(0.1, 3)

-VIRAR-

import PhysicsConstraints

cena = GameLogic.getCurrentScene()
objeto = cena.objects
carro = objeto["OBCarro"]
carroID = PhysicsConstraints.getVehicleConstraint(carro["constraint_ID"])
controlador = GameLogic.getCurrentController()
esquerda = controlador.sensors["Esquerda"]
direita = controlador.sensors["Direita"]
if esquerda.positive == True:
   virar = 0.3
elif direita.positive == True:
   virar = -0.3
else:
   virar = 0.0
carroID.setSteeringValue(virar, 0)
carroID.setSteeringValue(virar, 1)

Obs: Como foi dito anteriormente, não existe mais um script próprio para suspensão. Ele foi integrado à parte de opçoes do carro.

Nenhum comentário:

Postar um comentário