Advertisement
Guest User

CarSetup.py

a guest
Jun 16th, 2015
44
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.67 KB | None | 0 0
  1. #########################################
  2. #
  3. # CarSetup.py Blender 2.6
  4. #
  5. # tutorial can be found at
  6. #
  7. # www.tutorialsforblender3d.com
  8. #
  9. # Released under the Creative Commons Attribution 3.0 Unported License.
  10. #
  11. # If you use this code, please include this information header.
  12. #
  13. ##########################################
  14.  
  15.  
  16.  
  17. def main():
  18.  
  19. # get car object
  20. carObj = Car_Object()
  21.  
  22. # create a vehicle constraint ID
  23. vehicleID = Car_Constraint(carObj)
  24.  
  25. # get tire objects
  26. tireObj = Tire_Objects()
  27.  
  28. # tire positions
  29. tirePos = Tire_Positions()
  30.  
  31. # tire radius
  32. tireRadius = Tire_Radius()
  33.  
  34. # tire suspension height
  35. tireSuspension = Tire_Suspension()
  36.  
  37. # tire suspension angle
  38. tireSuspensionAngle = Tire_SuspensionAngle()
  39.  
  40. # tire axis attached to frame
  41. tireAxis = Tire_Axis()
  42.  
  43. # tire has steering?
  44. tireSteering = Tire_Steering()
  45.  
  46. # add wheels to car
  47. Add_Tires(vehicleID, tireObj, tirePos, tireSuspensionAngle, tireAxis, tireSuspension, tireRadius, tireSteering)
  48.  
  49. ########################## Get Car
  50.  
  51. def Car_Object():
  52.  
  53. # get current controller
  54. controller = bge.logic.getCurrentController()
  55.  
  56. # get car the controller is attached to
  57. carObj = controller.owner
  58.  
  59. return carObj
  60.  
  61. ########################## Vehicle Constraint
  62.  
  63. def Car_Constraint(carObj):
  64.  
  65. # import PhysicsConstraints
  66. # import PhysicsConstraints
  67.  
  68. # get physics ID
  69. car_PhysicsID = carObj.getPhysicsId()
  70.  
  71. # create a vehicle constraint
  72. vehicle_Constraint = bge.constraints.createConstraint(car_PhysicsID, 0, 11)
  73.  
  74. # get the constraint ID
  75. constraint_ID = vehicle_Constraint.getConstraintId()
  76.  
  77. # get the vehicle constraint ID
  78. vehicleID = bge.constraints.getVehicleConstraint(constraint_ID)
  79.  
  80. # save vehicle constraint ID as an object variable
  81. carObj["vehicleID"] = vehicleID
  82.  
  83. return vehicleID
  84.  
  85. ########################## Tire names
  86.  
  87. def Tire_Objects():
  88.  
  89. # tire names
  90. frontDriver = "TireFD" # front driver's tire
  91. frontPassenger = "TireFP" # front passenger's tire
  92. rearDriver = "TireRD" # rear driver's tire
  93. rearPassenger = "TireRP" # rear passenger's tire
  94.  
  95. # get current scene
  96. scene = bge.logic.getCurrentScene()
  97.  
  98. # get list of objects in scene
  99. objList = scene.objects
  100.  
  101. # tire Name
  102. tire_0 = objList[frontDriver] # front driver's tire
  103. tire_1 = objList[frontPassenger] # front passenger's tire
  104. tire_2 = objList[rearDriver] # rear driver's tire
  105. tire_3 = objList[rearPassenger] # rear passenger's tire
  106.  
  107. return (tire_0, tire_1, tire_2, tire_3)
  108.  
  109. ########################## Tire positions
  110.  
  111. def Tire_Positions():
  112.  
  113. # tire position
  114. tire_0_Pos = [ -0.72, 1.24, 0.0] # front driver's tire
  115. tire_1_Pos = [ 0.72, 1.24, 0.0] # front passenger's tire
  116. tire_2_Pos = [ -0.72, -1.24, 0.0] # rear driver's tire
  117. tire_3_Pos = [ 0.72, -1.24, 0.0] # rear passenger's tire
  118.  
  119. return (tire_0_Pos, tire_1_Pos, tire_2_Pos, tire_3_Pos)
  120.  
  121. ########################## Tire radius
  122.  
  123. def Tire_Radius():
  124.  
  125. # tire radius
  126. tire_0_Radius = 0.3 # front driver's tire
  127. tire_1_Radius = 0.3 # front passenger's tire
  128. tire_2_Radius = 0.3 # rear driver's tire
  129. tire_3_Radius = 0.3 # rear passenger's tire
  130.  
  131. return (tire_0_Radius, tire_1_Radius, tire_2_Radius, tire_3_Radius)
  132.  
  133. ########################## Tire suspension
  134.  
  135. def Tire_Suspension():
  136.  
  137. # tire suspension height
  138. tire_0_suspensionHeight = 0.0 # front driver's tire
  139. tire_1_suspensionHeight = 0.0 # front passenger's tire
  140. tire_2_suspensionHeight = 0.0 # rear driver's tire
  141. tire_3_suspensionHeight = 0.0 # rear passenger's tire
  142.  
  143. return (tire_0_suspensionHeight, tire_1_suspensionHeight, tire_2_suspensionHeight, tire_3_suspensionHeight)
  144.  
  145. ########################## Tire suspension angle
  146.  
  147. def Tire_SuspensionAngle():
  148.  
  149. # suspension angle from car object center
  150. tire_0_suspensionAngle = [ 0.0, 0.3, -1.0] # front driver's tire
  151. tire_1_suspensionAngle = [ 0.0, 0.3, -1.0] # front passenger's tire
  152. tire_2_suspensionAngle = [ 0.0, 0.0, -1.0] # rear driver's tire
  153. tire_3_suspensionAngle = [ 0.0, 0.0, -1.0] # rear passenger's tire
  154.  
  155. return (tire_0_suspensionAngle, tire_1_suspensionAngle, tire_2_suspensionAngle, tire_3_suspensionAngle)
  156.  
  157. ########################## Tire axis
  158.  
  159. def Tire_Axis():
  160.  
  161. # tire axis attached to axle
  162. tire_0_Axis = [ -1.0, 0.0, 0.0] # front driver's tire
  163. tire_1_Axis = [ -1.0, 0.0, 0.0] # front passenger's tire
  164. tire_2_Axis = [ -1.0, 0.0, 0.0] # rear driver's tire
  165. tire_3_Axis = [ -1.0, 0.0, 0.0] # rear passenger's tire
  166.  
  167. return (tire_0_Axis, tire_1_Axis, tire_2_Axis, tire_3_Axis)
  168.  
  169.  
  170. ########################## Tire steering
  171.  
  172. def Tire_Steering():
  173.  
  174. # tire has steering
  175. tire_0_Steering = True # front driver's tire
  176. tire_1_Steering = True # front passenger's tire
  177. tire_2_Steering = False # rear driver's tire
  178. tire_3_Steering = False # rear passenger's tire
  179.  
  180. return (tire_0_Steering, tire_1_Steering, tire_2_Steering, tire_3_Steering)
  181.  
  182.  
  183. ########################## add tires
  184.  
  185. def Add_Tires(vehicleID, tireObj, tirePos, tireSuspensionAngle, tireAxis, tireSuspension, tireRadius, tireSteering):
  186.  
  187. # loop through variables: add wheels
  188. for tire in range(0,4):
  189.  
  190. obj = tireObj[tire]
  191. pos = tirePos[tire]
  192. suspensionAngle = tireSuspensionAngle[tire]
  193. axis = tireAxis[tire]
  194. suspension = tireSuspension[tire]
  195. radius = tireRadius[tire]
  196. steering = tireSteering[tire]
  197.  
  198. # Add front driver tire
  199. vehicleID.addWheel( obj, pos, suspensionAngle, axis,
  200. suspension, radius, steering )
  201.  
  202.  
  203. ####################################################
  204.  
  205. #import bge
  206. import bge
  207.  
  208. # run program
  209. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement