Advertisement
Guest User

Powertrain.py

a guest
Jun 16th, 2015
257
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.43 KB | None | 0 0
  1. #########################################
  2. #
  3. # Powertrain.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. # Main Program
  17. def main():
  18.  
  19. # get the current controller
  20. controller = bge.logic.getCurrentController()
  21.  
  22. # get vehicle constraint ID
  23. vehicleID = ConstraintID(controller)
  24.  
  25. # brakes
  26. brakes = Brakes(vehicleID, controller)
  27.  
  28. # gas & reverse
  29. Power( vehicleID, controller, brakes)
  30.  
  31. # steering
  32. Steering(vehicleID, controller)
  33.  
  34.  
  35. ######################################################## Vehicle ID
  36.  
  37. # get vehicle constraint ID
  38. def ConstraintID(controller):
  39.  
  40. # get car the controller is attached to
  41. car = controller.owner
  42.  
  43. # get saved vehicle Constraint ID
  44. vehicleID = car["vehicleID"]
  45.  
  46. return vehicleID
  47.  
  48. ######################################################## Brakes
  49.  
  50. def Brakes(vehicleID, controller):
  51.  
  52. # set braking amount
  53. brakeAmount = 20.0 # front and back brakes
  54. ebrakeAmount = 45.0 # back brakes only
  55.  
  56. # get sensors
  57. reverse = controller.sensors["Reverse"] # sensor named "Reverse"
  58. brake = controller.sensors["Brake"] # sensor named "Brake
  59. emergency = controller.sensors["EBrake"] # sensor named "EBrake"
  60.  
  61. # emergency brakes
  62. if emergency.positive == True:
  63.  
  64. front_Brake = 0.0
  65. back_Brake = ebrakeAmount
  66. brakes = True
  67.  
  68. # brake
  69. elif brake.positive == True and reverse.positive == False:
  70.  
  71. front_Brake = brakeAmount
  72. back_Brake = brakeAmount
  73. brakes = True
  74.  
  75. # no brakes
  76. else:
  77.  
  78. front_Brake = 0.0
  79. back_Brake = 0.0
  80. brakes = False
  81.  
  82. # brakes
  83. vehicleID.applyBraking( front_Brake, 0)
  84. vehicleID.applyBraking( front_Brake, 1)
  85. vehicleID.applyBraking( back_Brake, 2)
  86. vehicleID.applyBraking( back_Brake, 3)
  87.  
  88. return brakes
  89.  
  90. ########################################## Gas & Reverse
  91.  
  92. # gas and reverse
  93. def Power( vehicleID, controller, brakes):
  94.  
  95. # set power amounts
  96. reversePower = 180.0
  97. gasPower = 360.0
  98.  
  99. # get power sensors
  100. gas = controller.sensors["Gas"] # sensor named "Gas"
  101. reverse = controller.sensors["Reverse"] # sensor named "Reverse"
  102.  
  103. # brakes
  104. if brakes == True:
  105.  
  106. power = 0.0
  107.  
  108. # reverse
  109. elif reverse.positive == True:
  110.  
  111. power = reversePower
  112.  
  113. # gas pedal
  114. elif gas.positive == True:
  115.  
  116. power = -gasPower
  117.  
  118. # no gas and no reverse
  119. else:
  120.  
  121. power = 0.0
  122.  
  123. # apply power
  124. vehicleID.applyEngineForce( power, 0)
  125. vehicleID.applyEngineForce( power, 1)
  126. vehicleID.applyEngineForce( power, 2)
  127. vehicleID.applyEngineForce( power, 3)
  128.  
  129.  
  130. ################################################## Steering
  131.  
  132. def Steering( vehicleID, controller):
  133.  
  134. # set turn amount
  135. turn = 0.6
  136.  
  137.  
  138. # get steering sensors
  139. steerLeft = controller.sensors["Left"] # sensor named "Left"
  140. steerRight = controller.sensors["Right"] # sensor named "Right"
  141.  
  142. # turn left
  143. if steerLeft.positive == True:
  144.  
  145. turn = turn
  146.  
  147. # turn right
  148. elif steerRight.positive == True:
  149.  
  150. turn = -turn
  151.  
  152. # go straight
  153. else:
  154. turn = 0.0
  155.  
  156. # steer with front tires only
  157. vehicleID.setSteeringValue(turn,0)
  158. vehicleID.setSteeringValue(turn,1)
  159.  
  160.  
  161. ###############################################
  162.  
  163. #import bge
  164. import bge
  165.  
  166. # run main program
  167. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement