Browse Source

grind stances

shuvit 5 years ago
parent
commit
8f6c501569
8 changed files with 1362 additions and 166 deletions
  1. 3
    1
      Settings.py
  2. 890
    0
      car.py
  3. 354
    122
      co_ActionState.py
  4. 72
    33
      controller2.py
  5. 1
    1
      grindV2.py
  6. 9
    6
      music_player.py
  7. 6
    0
      scene_init.py
  8. 27
    3
      walk.py

+ 3
- 1
Settings.py View File

@@ -86,6 +86,7 @@ def readSettings():
86 86
     dict['focal_length'] = int(data[56])        
87 87
     dict['cam_min'] = float(data[57])
88 88
     dict['cam_max'] = float(data[58])
89
+    dict['music_player'] = int(data[60]) 
89 90
     
90 91
     
91 92
     #print('bc = ', dict['bc'])        
@@ -160,7 +161,8 @@ def writeSettings():
160 161
         writing.write(str(dict["focal_length"])+"\n") 
161 162
         writing.write(str(dict["cam_min"])+"\n")                 
162 163
         writing.write(str(dict["cam_max"])+"\n") 
163
-        
164
+        writing.write(str("//music player on / off")+"\n")
165
+        writing.write(str(dict["music_player"])+"\n")
164 166
         
165 167
         #writing.write(str(own["framerate"])+"\n")
166 168
         print("writing settings")

+ 890
- 0
car.py View File

@@ -0,0 +1,890 @@
1
+"""
2
+
3
+CarSetup 
4
+
5
+
6
+"""
7
+
8
+#import blender game engine content
9
+from bge import logic, constraints
10
+
11
+#import other modules
12
+import math, mathutils
13
+
14
+
15
+os = 'Windows'
16
+from sys import platform
17
+if platform != "win32":
18
+ os = 'Linux'
19
+def onWindows():
20
+ return os == 'Windows'
21
+import bge
22
+import GameLogic
23
+import ctypes
24
+
25
+
26
+
27
+
28
+reduction = 400000
29
+axisTh = 0.03 
30
+
31
+cont = GameLogic.getCurrentController() 
32
+obj = bge.logic.getCurrentScene().objects
33
+own = cont.owner
34
+#Sensor logic bricks connected to the python Controller  
35
+aXis = cont.sensors["sCont"]
36
+bUtt = cont.sensors["sContb"]
37
+
38
+
39
+onW = onWindows()
40
+
41
+# windows stuff
42
+lar_lts = 0
43
+uad_lts = 1
44
+lt = 4 if onW else 2
45
+lar_rts = 2 if onW else 3
46
+uad_rts = 3 if onW else 4
47
+rt = 5
48
+
49
+a_but = 0 if onW else 0
50
+b_but = 1 if onW else 1
51
+x_but = 2 if onW else 2
52
+y_but = 3 if onW else 3
53
+l_bump = 9 if onW else 4
54
+r_bump = 10 if onW else 5
55
+bk_but = 4 if onW else 6
56
+st_but = 6 if onW else 7
57
+xb_but = 5 if onW else 8
58
+lts_pr = 7 if onW else 9
59
+rts_pr = 8 if onW else 10
60
+l_dp = 13 if onW else 11
61
+r_dp = 14 if onW else 12
62
+u_dp = 11 if onW else 13
63
+d_dp = 12 if onW else 14
64
+
65
+
66
+
67
+
68
+
69
+
70
+
71
+
72
+class CarSetup:
73
+    
74
+    def __init__(self):
75
+        
76
+        #list of cars
77
+        self.carList = {}
78
+        
79
+        #list of tires
80
+        self.tires = {}
81
+        
82
+        #car turn amount
83
+        self.turnAmount = {}
84
+    
85
+    
86
+    def carInitialized(self, car):
87
+        
88
+        #check for initialized property
89
+        if "initialized" in car:
90
+            
91
+            #check if car is initialized
92
+            if car["initialized"] == True:
93
+                
94
+                #car is initialized
95
+                return True
96
+        
97
+        #car is not initialized
98
+        return False
99
+    
100
+    
101
+    def carConstraint(self, car):
102
+        
103
+        #get physics ID
104
+        carPhysicsID = car.getPhysicsId()
105
+         
106
+        #create a vehicle constraint 
107
+        vehicleConstraint = constraints.createConstraint(carPhysicsID, 0, 11)
108
+         
109
+        #get the constraint ID
110
+        constraintID = vehicleConstraint.getConstraintId()
111
+          
112
+        #get the vehicle constraint ID
113
+        vehicleID =  constraints.getVehicleConstraint(constraintID)
114
+    
115
+        #save vehicle constraint ID as an object variable
116
+        car["vehicleID"] = vehicleID
117
+        
118
+        #return vehicle ID
119
+        return vehicleID
120
+    
121
+    
122
+    def positionTires(self, car):
123
+        
124
+        #get the list of tires
125
+        tireList = self.tires[car]
126
+        
127
+        tire1 = tireList["TireFD"]  #tire front drivers
128
+        tire2 = tireList["TireFP"]  #tire front passengers
129
+        tire3 = tireList["TireRD"]  #tire rear drivers
130
+        tire4 = tireList["TireRP"]  #tire rear passnengers
131
+        
132
+        tire1Pos = tire1.worldPosition  #tire front drivers
133
+        tire2Pos = tire2.worldPosition  #tire front passengers
134
+        tire3Pos = tire3.worldPosition  #tire rear drivers
135
+        tire4Pos = tire4.worldPosition  #tire rear passnengers
136
+        
137
+        #car position
138
+        carPos = car.worldPosition
139
+        
140
+        #tire front drivers
141
+        tire1Pos = [tire1Pos[0] - carPos[0],
142
+                    tire1Pos[1] - carPos[1],
143
+                    tire1Pos[2] - carPos[2]]
144
+        
145
+        #tire front passengers
146
+        tire2Pos = [tire2Pos[0] - carPos[0],
147
+                    tire2Pos[1] - carPos[1],
148
+                    tire2Pos[2] - carPos[2]]
149
+        
150
+        #tire rear drivers
151
+        tire3Pos = [tire3Pos[0] - carPos[0],
152
+                    tire3Pos[1] - carPos[1],
153
+                    tire3Pos[2] - carPos[2]]
154
+        
155
+        #tire rear passengers
156
+        tire4Pos = [tire4Pos[0] - carPos[0],
157
+                    tire4Pos[1] - carPos[1],
158
+                    tire4Pos[2] - carPos[2]]
159
+            
160
+        return (tire1Pos, tire2Pos, tire3Pos, tire4Pos)
161
+    
162
+    
163
+    def tireRadius(self, car):
164
+        
165
+        #get the list of tires
166
+        tireList = self.tires[car]
167
+        
168
+        tire1Radius = tireList["TireFD"].localScale[2]/2    #tire front drivers
169
+        tire2Radius = tireList["TireFP"].localScale[2]/2    #tire front passengers
170
+        tire3Radius = tireList["TireRD"].localScale[2]/2    #tire rear drivers
171
+        tire4Radius = tireList["TireRP"].localScale[2]/2    #tire rear passengers
172
+        
173
+        #check for radius override
174
+        if "Radius" in tireList["TireFD"]:
175
+            tire1Radius = tireList["TireFD"]["Radius"]
176
+            
177
+        if "Radius" in tireList["TireFP"]:
178
+            tire2Radius = tireList["TireFP"]["Radius"]
179
+            
180
+        if "Radius" in tireList["TireRD"]:
181
+            tire3Radius = tireList["TireRD"]["Radius"]
182
+            
183
+        if "Radius" in tireList["TireRP"]:
184
+            tire4Radius = tireList["TireRP"]["Radius"]
185
+        
186
+        #return (tire1Radius, tire2Radius, tire3Radius, tire4Radius)
187
+        return (.2, .2, .2, .2)
188
+    
189
+    
190
+    def suspensionHeight(self, car):
191
+        
192
+        tireList = self.tires[car]
193
+        
194
+        tire1height = 0.2   #tire front drivers
195
+        tire2height = 0.2   #tire front passengers
196
+        tire3height = 0.2   #tire rear drivers
197
+        tire4height = 0.2   #tire rear passengers
198
+        
199
+        #check for suspension height override
200
+        if "Height" in tireList["TireFD"]:
201
+            tire1height = tireList["TireFD"]["Height"]
202
+            
203
+        if "Height" in tireList["TireFP"]:
204
+            tire2height = tireList["TireFP"]["Height"]
205
+            
206
+        if "Height" in tireList["TireRD"]:
207
+            tire3height = tireList["TireRD"]["Height"]
208
+            
209
+        if "Height" in tireList["TireRP"]:
210
+            tire4height = tireList["TireRP"]["Height"]
211
+        
212
+        return (tire1height, tire2height, tire3height, tire4height)
213
+    
214
+    
215
+    def suspensionAngle(self):
216
+        
217
+        tire1Angle = [0, 0, -1] #tire front drivers
218
+        tire2Angle = [0, 0, -1] #tire front passengers
219
+        tire3Angle = [0, 0, -1] #tire rear drivers
220
+        tire4Angle = [0, 0, -1] #tire rear passengers
221
+        
222
+        return (tire1Angle, tire2Angle, tire3Angle, tire4Angle)
223
+    
224
+    
225
+    def tireAxis(self):
226
+        
227
+        tire1Axis = [-1, 0, 0]  #tire front drivers
228
+        tire2Axis = [-1, 0, 0]  #tire front passengers
229
+        tire3Axis = [-1, 0, 0]  #tire rear drivers
230
+        tire4Axis = [-1, 0, 0]  #tire rear passengers
231
+        
232
+        return (tire1Axis, tire2Axis, tire3Axis, tire4Axis)
233
+    
234
+    
235
+    def tireSteering(self):
236
+        
237
+        tire1Steer = True   #tire front drivers
238
+        tire2Steer = True   #tire front passengers
239
+        tire3Steer = False  #tire rear drivers
240
+        tire4Steer = False  #tire rear passengers
241
+        
242
+        return (tire1Steer, tire2Steer, tire3Steer, tire4Steer)
243
+    
244
+    
245
+    def addTires(self, car, vehicleID):
246
+        
247
+        #get the list of tires
248
+        tireList = self.tires[car]
249
+        
250
+        #list the tires
251
+        tires = [tireList["TireFD"],
252
+                 tireList["TireFP"],
253
+                 tireList["TireRD"],
254
+                 tireList["TireRP"]]
255
+        
256
+        #position the tires
257
+        tirePos = self.positionTires(car)
258
+        
259
+        #calculate tire radius
260
+        tireRadius = self.tireRadius(car)
261
+        
262
+        #get the suspension heght
263
+        suspensionHeight = self.suspensionHeight(car)
264
+        
265
+        #get the suspension angle
266
+        suspensionAngle = self.suspensionAngle()
267
+        
268
+        #get the tire axis
269
+        tireAxis = self.tireAxis()
270
+        
271
+        #get which wheels turn
272
+        tireSteer = self.tireSteering()
273
+        
274
+        for tire in range(0, 4):
275
+            
276
+            #tire object
277
+            obj = tires[tire]
278
+            
279
+            #tire position
280
+            pos = tirePos[tire]
281
+            
282
+            #tire suspension height
283
+            suspenHeight = suspensionHeight[tire]
284
+            
285
+            #angle of suspension
286
+            suspenAngle = suspensionAngle[tire]
287
+            
288
+            #tire rotation axis
289
+            axis = tireAxis[tire]
290
+            
291
+            #tire radius
292
+            radius = tireRadius[tire]
293
+            
294
+            #tire steering
295
+            steering = tireSteer[tire]
296
+            
297
+            #add wheel to car
298
+            vehicleID.addWheel(obj, pos, suspenAngle, axis, suspenHeight, radius, steering)
299
+            
300
+    
301
+    def tireGrip(self, car, vehicleID):
302
+        
303
+        #list of tires
304
+        tireList = self.tires[car]
305
+        #10
306
+        tire1Grip = 8  #tire front drivers
307
+        tire2Grip = 8  #tire front Passengers
308
+        tire3Grip = 8  #tire rear drivers
309
+        tire4Grip = 8  #tire rear passengers
310
+        
311
+        #check for grip override
312
+        if "Grip" in tireList["TireFD"]:
313
+            tire1Grip = tireList["TireFD"]["Grip"]
314
+            
315
+        if "Grip" in tireList["TireFP"]:
316
+            tire2Grip = tireList["TireFP"]["Grip"]
317
+            
318
+        if "Grip" in tireList["TireRD"]:
319
+            tire3Grip = tireList["TireRD"]["Grip"]
320
+            
321
+        if "Grip" in tireList["TireRP"]:
322
+            tire4Grip = tireList["TireRP"]["Grip"]
323
+        
324
+        vehicleID.setTyreFriction(tire1Grip, 0) #tire front drivers
325
+        vehicleID.setTyreFriction(tire2Grip, 1) #tire front Passengers
326
+        vehicleID.setTyreFriction(tire3Grip, 2) #tire rear drivers
327
+        vehicleID.setTyreFriction(tire4Grip, 3) #tire rear passengers
328
+        
329
+    
330
+    def suspensionCompression(self, car, vehicleID):
331
+        
332
+        #list of tires
333
+        tireList = self.tires[car]
334
+        #6
335
+        tire1Compress = 6   #tire front drivers
336
+        tire2Compress = 6   #tire front Passengers
337
+        tire3Compress = 6   #tire rear drivers
338
+        tire4Compress = 6   #tire rear passengers
339
+        
340
+        #check for compression override
341
+        if "Compression" in tireList["TireFD"]:
342
+            tire1Compress = tireList["TireFD"]["Compression"]
343
+            
344
+        if "Compression" in tireList["TireFP"]:
345
+            tire2Compress = tireList["TireFP"]["Compression"]
346
+            
347
+        if "Compression" in tireList["TireRD"]:
348
+            tire3Compress = tireList["TireRD"]["Compression"]
349
+            
350
+        if "Compression" in tireList["TireRP"]:
351
+            tire4Compress = tireList["TireRP"]["Compression"]
352
+        
353
+        vehicleID.setSuspensionCompression(tire1Compress, 0)    #tire front drivers
354
+        vehicleID.setSuspensionCompression(tire2Compress, 1)    #tire front Passengers
355
+        vehicleID.setSuspensionCompression(tire3Compress, 2)    #tire rear drivers
356
+        vehicleID.setSuspensionCompression(tire4Compress, 3)    #tire rear passengers
357
+    
358
+    
359
+    def suspensionDamping(self, car, vehicleID):
360
+        
361
+        #list of tires
362
+        tireList = self.tires[car]
363
+        
364
+        tire1Damp = 5   #tire front drivers
365
+        tire2Damp = 5   #tire front Passengers
366
+        tire3Damp = 5   #tire rear drivers
367
+        tire4Damp = 5   #tire rear passengers
368
+        
369
+        #check for damping override
370
+        if "Damping" in tireList["TireFD"]:
371
+            tire1Damp = tireList["TireFD"]["Damping"]
372
+            
373
+        if "Damping" in tireList["TireFP"]:
374
+            tire2Damp = tireList["TireFP"]["Damping"]
375
+            
376
+        if "Damping" in tireList["TireRD"]:
377
+            tire3Damp = tireList["TireRD"]["Damping"]
378
+            
379
+        if "Damping" in tireList["TireRP"]:
380
+            tire4Damp = tireList["TireRP"]["Damping"]
381
+        
382
+        vehicleID.setSuspensionDamping(tire1Damp, 0)    #tire front drivers
383
+        vehicleID.setSuspensionDamping(tire2Damp, 1)    #tire front Passengers
384
+        vehicleID.setSuspensionDamping(tire3Damp, 2)    #tire rear drivers
385
+        vehicleID.setSuspensionDamping(tire4Damp, 3)    #tire rear passengers
386
+    
387
+    
388
+    def suspensionStiffness(self, car, vehicleID):
389
+        
390
+        #list of tires
391
+        tireList = self.tires[car]
392
+        
393
+        tire1Stiffness = 12.5       #tire front drivers
394
+        tire2Stiffness = 12.5       #tire front Passengers
395
+        tire3Stiffness = 12.5       #tire rear drivers
396
+        tire4Stiffness = 12.5       #tire rear passengers
397
+        
398
+        #check for stiffness override
399
+        if "Stiffness" in tireList["TireFD"]:
400
+            tire1Stiffness = tireList["TireFD"]["Stiffness"]
401
+            
402
+        if "Stiffness" in tireList["TireFP"]:
403
+            tire2Stiffness = tireList["TireFP"]["Stiffness"]
404
+            
405
+        if "Stiffness" in tireList["TireRD"]:
406
+            tire3Stiffness = tireList["TireRD"]["Stiffness"]
407
+            
408
+        if "Stiffness" in tireList["TireRP"]:
409
+            tire4Stiffness = tireList["TireRP"]["Stiffness"]
410
+        
411
+        vehicleID.setSuspensionStiffness(tire1Stiffness, 0) #tire front drivers
412
+        vehicleID.setSuspensionStiffness(tire2Stiffness, 1) #tire front Passengers
413
+        vehicleID.setSuspensionStiffness(tire3Stiffness, 2) #tire rear drivers
414
+        vehicleID.setSuspensionStiffness(tire4Stiffness, 3) #tire rear passengers
415
+    
416
+    
417
+    def suspensionRollInfluence(self, car, vehicleID):
418
+        
419
+        #list of tires
420
+        tireList = self.tires[car]
421
+        
422
+        tire1Roll = -0.16   #tire front drivers
423
+        tire2Roll = -0.16   #tire front Passengers
424
+        tire3Roll = -0.16   #tire rear drivers
425
+        tire4Roll = -0.16   #tire rear passengers
426
+        
427
+        #check for roll influence override
428
+        if "RollInfluence" in tireList["TireFD"]:
429
+            tire1Roll = -tireList["TireFD"]["RollInfluence"]
430
+            
431
+        if "Roll" in tireList["TireFP"]:
432
+            tire2Roll = -tireList["TireFP"]["RollInfluence"]
433
+            
434
+        if "Roll" in tireList["TireRD"]:
435
+            tire3Roll = -tireList["TireRD"]["RollInfluence"]
436
+            
437
+        if "Roll" in tireList["TireRP"]:
438
+            tire4Roll = -tireList["TireRP"]["RollInfluence"]
439
+        
440
+        vehicleID.setRollInfluence(tire1Roll, 0)    #tire front drivers
441
+        vehicleID.setRollInfluence(tire2Roll, 1)    #tire front Passengers
442
+        vehicleID.setRollInfluence(tire3Roll, 2)    #tire rear drivers
443
+        vehicleID.setRollInfluence(tire4Roll, 3)    #tire rear passengers
444
+    
445
+    
446
+#create CarSetup object
447
+carsetup = CarSetup()
448
+
449
+
450
+def _initialize(controller):
451
+    
452
+    #get the car object
453
+    car = controller.owner
454
+    
455
+    #get current orientation
456
+    carOrient = car.worldOrientation
457
+    
458
+    #convert orientation to euler
459
+    carEuler = carOrient.to_euler()
460
+    newCarEuler = carOrient.to_euler()
461
+    
462
+    #set euler rotation
463
+    newCarEuler[0] = 0
464
+    newCarEuler[1] = 0
465
+    newCarEuler[2] = 0
466
+    
467
+    #set car orientation
468
+    car.worldOrientation = newCarEuler.to_matrix()
469
+    
470
+    if not car.name in carsetup.carList:
471
+        
472
+        #assign the car
473
+        carsetup.carList[car] = car
474
+        
475
+        tires = {}
476
+        
477
+        #look for tires
478
+        for c in car.children:
479
+            
480
+            tire = "Tire"
481
+            
482
+            #check if tire object
483
+            if "Tire" in c:
484
+                
485
+                #build the tire name
486
+                tire += c["Tire"]
487
+                
488
+                #add tire to list
489
+                tires[tire] = c
490
+                
491
+                #assign tires owner
492
+                c["owner"] = car.name
493
+                
494
+                #clear tire parent
495
+                c.removeParent()
496
+        
497
+        #add tires to list of tires
498
+        carsetup.tires[car] = tires
499
+        
500
+        #build the car constraint
501
+        vehicleID = carsetup.carConstraint(car)
502
+        
503
+        #add tires to car
504
+        carsetup.addTires(car, vehicleID)
505
+        
506
+        #set tire grip
507
+        carsetup.tireGrip(car, vehicleID)
508
+        
509
+        #set suspension compression
510
+        carsetup.suspensionCompression(car, vehicleID)
511
+        
512
+        #set suspension damping
513
+        carsetup.suspensionDamping(car, vehicleID)
514
+        
515
+        #set suspension stiffness
516
+        carsetup.suspensionStiffness(car, vehicleID)
517
+        
518
+        #set suspension roll influence
519
+        carsetup.suspensionRollInfluence(car, vehicleID)
520
+    
521
+    #set car orientation
522
+    car.worldOrientation = carEuler.to_matrix()
523
+    
524
+    #set car to initialized
525
+    car["initialized"] = True
526
+    
527
+    #set turn amount
528
+    carsetup.turnAmount[car] = 0
529
+    
530
+    #check for "TurnAmount" property in car
531
+    if not "TurnAmount" in car:
532
+        
533
+        #set default turn amount
534
+        car["TurnAmount"] = 50#35
535
+        
536
+    #check for "TurnSpeed" property in car
537
+    if not "TurnSpeed" in car:
538
+        
539
+        #set default turn speed
540
+        car["TurnSpeed"] = 1
541
+        car["TurnSpeed2"] = 20#2
542
+
543
+
544
+
545
+def _constraintID(car):
546
+        
547
+    # get saved vehicle Constraint ID
548
+    vehicleID = car["vehicleID"]
549
+    
550
+    return vehicleID
551
+
552
+
553
+def _powertrain(controller, car):
554
+    
555
+    #declare variables
556
+    gas = None
557
+    reverse = None
558
+    brake = None
559
+    ebrake = None
560
+    
561
+    #get the vehicl id
562
+    vehicleID = _constraintID(car)
563
+    
564
+    #engine power
565
+    power = 0
566
+    
567
+    #engine
568
+    engine = True
569
+    
570
+    #check for engine override
571
+    if "Engine" in car:
572
+        engine = car["Engine"]
573
+    
574
+    
575
+    
576
+    #set default values
577
+    forwardSpeed = 70
578
+    
579
+    reverseSpeed = 200
580
+    brakeAmount = 10
581
+    eBrakeAmount = 40
582
+    backdrive = True
583
+    frontdrive = False
584
+    
585
+    #check for forward speed override
586
+    if "ForwardSpeed" in car:
587
+        
588
+        #set forward speed
589
+        forwardSpeed = car["ForwardSpeed"]
590
+    
591
+    #check for reverse speed override
592
+    if "ReverseSpeed" in car:
593
+        
594
+        #set reverse speed
595
+        reverseSpeed = car["ReverseSpeed"]
596
+    
597
+    #check for brake amount override
598
+    if "BrakeAmount" in car:
599
+        
600
+        #set brake amount
601
+        brakeAmount = car["BrakeAmount"]
602
+    
603
+    #check for E-brake amount override
604
+    if "EBrakeAmount" in car:
605
+        
606
+        #set brake amount
607
+        eBrakeAmount = car["EBrakeAmount"]
608
+    
609
+    #check for BackWheelDrive override
610
+    if "BackWheelDrive" in car:
611
+        
612
+        #set back wheel drive
613
+        backdrive = car["BackWheelDrive"]
614
+    
615
+    #check for FrontWheelDrive override
616
+    if "FrontWheelDrive" in car:
617
+        
618
+        #set front wheel drive
619
+        frontdrive = car["FrontWheelDrive"]
620
+    
621
+    #check for gas sensor
622
+    if "Gas" in controller.sensors:
623
+        #gas = controller.sensors["Gas"]       
624
+        gas = own['gas']
625
+    #check for reverse sensor
626
+    #if "Reverse" in controller.sensors:
627
+        #reverse = controller.sensors["Reverse"]
628
+    reverse = own['reverse']
629
+    #check for brake sensor
630
+    #if "Brake" in controller.sensors:
631
+        #brake = controller.sensors["Brake"]
632
+    brake = own['brake']
633
+    #check for E-brake sensor
634
+    if "EBrake" in controller.sensors:
635
+        ebrake = controller.sensors["EBrake"]
636
+    
637
+    #check if gas exists
638
+    if gas:
639
+        
640
+        #check if gas is positive
641
+        if gas == 1:
642
+            
643
+            #check if engine is on
644
+            if engine:
645
+                #set power
646
+                power = -forwardSpeed
647
+    
648
+    #check if reverse exists
649
+    #if reverse:
650
+        
651
+    #check if reverse is positive
652
+    if reverse == 1:
653
+        
654
+        #check if engine is on
655
+        if engine:
656
+            
657
+            #set power
658
+            power = reverseSpeed
659
+            
660
+            #check if gas exists
661
+            if gas:
662
+                
663
+                #check if gas is positive
664
+                if gas == 1:
665
+                    
666
+                    #set power
667
+                    power = 0
668
+    
669
+    #check if brake exists
670
+    #if brake:
671
+        
672
+    #check if brake is positive
673
+    if brake == 1:
674
+        
675
+        #apply braking
676
+        vehicleID.applyBraking(brakeAmount, 2)
677
+        vehicleID.applyBraking(brakeAmount, 3)
678
+        
679
+        #set power
680
+        power = 0
681
+        
682
+    else:
683
+        #remove braking
684
+        vehicleID.applyBraking(0, 2)
685
+        vehicleID.applyBraking(0, 3)
686
+        
687
+    #check if e brake exists
688
+    if ebrake:
689
+        
690
+        #check if e brake is positive
691
+        if ebrake.positive:
692
+            
693
+            #apply braking
694
+            vehicleID.applyBraking(eBrakeAmount, 2)
695
+            vehicleID.applyBraking(eBrakeAmount, 3)
696
+            
697
+            #set power
698
+            power = 0
699
+    
700
+            
701
+    #check if back wheel drive
702
+    if backdrive:
703
+        
704
+        #apply power
705
+        vehicleID.applyEngineForce(-power, 2)
706
+        vehicleID.applyEngineForce(-power, 3)
707
+        
708
+    #check if front wheel drive
709
+    if frontdrive:
710
+        
711
+        #apply power
712
+        vehicleID.applyEngineForce(-power, 0)
713
+        vehicleID.applyEngineForce(-power, 1)
714
+
715
+
716
+def _steer(controller, car):
717
+    
718
+    #declare variables
719
+    #left = None
720
+    #right = None
721
+    left = own['left']
722
+    right = own['right']
723
+    #turn amount
724
+    turnAmount = math.radians(car["TurnAmount"])
725
+    
726
+    #get turn speed
727
+    turnSpeed = car["TurnSpeed"] * 0.01
728
+    turnSpeed2 = car["TurnSpeed2"] * 0.01
729
+    
730
+    #get vehicle id
731
+    vehicleID = _constraintID(car)
732
+    
733
+    #check for left sensor
734
+    #if "Left" in controller.sensors:
735
+        #left = controller.sensors["Left"]
736
+        
737
+    #check for right sensor
738
+    #if "Right" in controller.sensors:
739
+        #right = controller.sensors["Right"]
740
+    
741
+    #check if the sensors exist
742
+    #if left and right:
743
+        
744
+        #check if both are positive
745
+        #if left.positive and right.positive:
746
+            
747
+            #pass
748
+        
749
+        #check if left is positive
750
+        #elif left.positive and not right.positive:
751
+    if left == True:    
752
+        #check turn amount
753
+        if carsetup.turnAmount[car] < turnAmount:
754
+            
755
+            #add to turn value
756
+            carsetup.turnAmount[car] += turnSpeed
757
+            
758
+            #apply steering
759
+            vehicleID.setSteeringValue(carsetup.turnAmount[car],0)
760
+            vehicleID.setSteeringValue(carsetup.turnAmount[car],1)
761
+    
762
+    #check if right is positive
763
+    #elif not left.positive and right.positive:
764
+    elif right == True:    
765
+        #check turn amount
766
+        if carsetup.turnAmount[car] > -turnAmount:
767
+            
768
+            #subtract from turn value
769
+            carsetup.turnAmount[car] -= turnSpeed
770
+            
771
+            #apply steering
772
+            vehicleID.setSteeringValue(carsetup.turnAmount[car],0)
773
+            vehicleID.setSteeringValue(carsetup.turnAmount[car],1)
774
+            
775
+    #check if none are positive
776
+    #elif not left.positive and not right.positive:
777
+    elif right == 0 and left == 0:
778
+        #print(round(carsetup.turnAmount[car],2))
779
+        #check if steering right
780
+        if carsetup.turnAmount[car] <= -turnSpeed2:
781
+            #print("less than, subtract")
782
+            #add to turn value
783
+            carsetup.turnAmount[car] += turnSpeed2
784
+        #check if steering left
785
+        elif carsetup.turnAmount[car] > turnSpeed2:
786
+            #print("greater than add")
787
+            #subtract from turn value
788
+            carsetup.turnAmount[car] -= turnSpeed2
789
+        else:
790
+            carsetup.turnAmount[car] = 0
791
+            
792
+        #apply steering
793
+        vehicleID.setSteeringValue(carsetup.turnAmount[car],0)
794
+        vehicleID.setSteeringValue(carsetup.turnAmount[car],1)
795
+
796
+    
797
+def main(controller):
798
+
799
+    lLR = aXis.axisValues[lar_lts] / reduction
800
+    lUD = aXis.axisValues[uad_lts] / reduction
801
+    rLR = aXis.axisValues[lar_rts] / reduction
802
+    rUD = aXis.axisValues[uad_rts] / reduction
803
+    lTrig = aXis.axisValues[lt] / reduction
804
+    rTrig = aXis.axisValues[rt] / reduction
805
+    aBut = bUtt.getButtonStatus(a_but)
806
+    bBut = bUtt.getButtonStatus(b_but)
807
+    xBut = bUtt.getButtonStatus(x_but)
808
+    yBut = bUtt.getButtonStatus(y_but)
809
+    lBump = bUtt.getButtonStatus(l_bump)
810
+    rBump = bUtt.getButtonStatus(r_bump)
811
+    bkBut = bUtt.getButtonStatus(bk_but)
812
+    stBut = bUtt.getButtonStatus(st_but)
813
+    xbBut = bUtt.getButtonStatus(xb_but)
814
+    ltsBut = bUtt.getButtonStatus(lts_pr)
815
+    rtsBut = bUtt.getButtonStatus(rts_pr)
816
+    ldPad = bUtt.getButtonStatus(l_dp)
817
+    rdPad = bUtt.getButtonStatus(r_dp)
818
+    udPad = bUtt.getButtonStatus(u_dp)
819
+    ddPad = bUtt.getButtonStatus(d_dp)
820
+
821
+    #no input
822
+    def cutOff():    
823
+     if (abs(lLR) < axisTh 
824
+         and abs(lUD) < axisTh 
825
+         and abs(rLR) < axisTh 
826
+         and abs(rUD) < axisTh
827
+         and aBut == False):        
828
+      return True
829
+
830
+    #print(rTrig)
831
+    own['ForwardSpeed'] = rTrig * 6500
832
+    #if own['ForwardSpeed'] < 500:
833
+        #own['ForwardSpeed'] = 500:
834
+    if rTrig > .01:
835
+        own['gas'] = 1
836
+    else:
837
+        own['gas'] = 0 
838
+    if lTrig > .01:
839
+        own['brake'] = 1
840
+    else:
841
+        own['brake'] = 0 
842
+    if lLR > .04:
843
+        own['right'] = 1
844
+    else:
845
+        own['right'] = 0
846
+    if lLR < -.04:
847
+        own['left'] = 1
848
+    else:
849
+        own['left'] = 0
850
+    if aBut == 1:
851
+        own['reverse'] = 1
852
+    else:
853
+        own['reverse'] = 0         
854
+                                   
855
+    
856
+    #get the car object
857
+    car = controller.owner
858
+    
859
+    #check if car was initialized
860
+    if not carsetup.carInitialized(car):
861
+        
862
+        #initialize the car
863
+        _initialize(controller)
864
+        
865
+        #exit
866
+        return
867
+    
868
+    #build the car constraint
869
+    vehicleID = _constraintID(car)
870
+    
871
+    #set tire grip
872
+    carsetup.tireGrip(car, vehicleID)
873
+    
874
+    #set suspension compression
875
+    carsetup.suspensionCompression(car, vehicleID)
876
+    
877
+    #set suspension damping
878
+    carsetup.suspensionDamping(car, vehicleID)
879
+    
880
+    #set suspension stiffness
881
+    carsetup.suspensionStiffness(car, vehicleID)
882
+    
883
+    #set suspension roll influence
884
+    carsetup.suspensionRollInfluence(car, vehicleID)
885
+    
886
+    #run powertrain
887
+    _powertrain(controller, car)
888
+    
889
+    #run powertrain
890
+    _steer(controller, car)

+ 354
- 122
co_ActionState.py
File diff suppressed because it is too large
View File


+ 72
- 33
controller2.py View File

@@ -563,11 +563,11 @@ def main():
563 563
         #revert_timer
564 564
         playing = deck.isPlayingAction(40)
565 565
         if own["revert_timer"] < 1 and own['manual_v2'] == 0 and playing == 0:
566
-            if inc == 1:
567
-                print('inc stance')
568
-                own['requestAction'] = 'reg_pump'
569
-            else:    
570
-                own['requestAction'] = 'reg_roll'
566
+#            if inc == 1:
567
+#                print('inc stance')
568
+#                own['requestAction'] = 'reg_pump'
569
+#            else:    
570
+            own['requestAction'] = 'reg_roll'
571 571
     def reg_stance_off():
572 572
         pass 
573 573
         
@@ -642,10 +642,10 @@ def main():
642 642
     def fak_stance_on(inc):
643 643
         playing = deck.isPlayingAction(40)
644 644
         if own['manual_v2'] == 0 and own["revert_timer"] < 1 and playing == 0 and own['gt_cd2'] < 1:
645
-            if inc == 1:
646
-                own['requestAction'] = 'fak_pump'
647
-            else:    
648
-                own['requestAction'] = 'fak_roll'
645
+#            if inc == 1:
646
+#                own['requestAction'] = 'fak_pump'
647
+#            else:    
648
+            own['requestAction'] = 'fak_roll'
649 649
     def fak_stance_off():
650 650
         pass
651 651
         
@@ -2090,18 +2090,18 @@ def main():
2090 2090
                 elif own['grindType'] == "reg_fsboard":
2091 2091
                     own['grind_stance'] = 0
2092 2092
                     own['requestAction'] = 'reg_fsboard'
2093
-                elif own['grindType'] == "reg_tailg":
2094
-                    own['requestAction'] = 'reg_tailg'
2095
-                elif own['grindType'] == "reg_tailgR":
2096
-                    own['requestAction'] = 'reg_tailgr'
2097
-                elif own['grindType'] == "reg_tailgL":
2098
-                    own['requestAction'] = 'reg_tailgl'
2099
-                elif own['grindType'] == "reg_noseg":
2100
-                    own['requestAction'] = 'reg_noseg'                
2101
-                elif own['grindType'] == "reg_nosegR":
2102
-                    own['requestAction'] = 'reg_nosegr'                
2103
-                elif own['grindType'] == "reg_nosegL":
2104
-                    own['requestAction'] = 'reg_nosegl'                
2093
+#                elif own['grindType'] == "reg_tailg":
2094
+#                    own['requestAction'] = 'reg_tailg'
2095
+#                elif own['grindType'] == "reg_tailgR":
2096
+#                    own['requestAction'] = 'reg_tailgr'
2097
+#                elif own['grindType'] == "reg_tailgL":
2098
+#                    own['requestAction'] = 'reg_tailgl'
2099
+#                elif own['grindType'] == "reg_noseg":
2100
+#                    own['requestAction'] = 'reg_noseg'                
2101
+#                elif own['grindType'] == "reg_nosegR":
2102
+#                    own['requestAction'] = 'reg_nosegr'                
2103
+#                elif own['grindType'] == "reg_nosegL":
2104
+#                    own['requestAction'] = 'reg_nosegl'                
2105 2105
                 elif own['grindType'] == "fak_noseg":
2106 2106
                     own['requestAction'] = 'fak_noseg'                
2107 2107
                 elif own['grindType'] == "fak_nosegR": 
@@ -2114,6 +2114,21 @@ def main():
2114 2114
                     own['requestAction'] = 'fak_tailgr'
2115 2115
                 elif own['grindType'] == "fak_tailgL":
2116 2116
                     own['requestAction'] = 'fak_tailgl'
2117
+                
2118
+                #33333333333    
2119
+                elif own['grindType'] == "reg_tailg":
2120
+                    own['requestAction'] = 'fak_noseg'
2121
+                elif own['grindType'] == "reg_tailgR":
2122
+                    own['requestAction'] = 'fak_nosegr'
2123
+                elif own['grindType'] == "reg_tailgL":
2124
+                    own['requestAction'] = 'fak_nosegl'
2125
+                elif own['grindType'] == "reg_noseg":
2126
+                    own['requestAction'] = 'fak_tailg'                
2127
+                elif own['grindType'] == "reg_nosegR":
2128
+                    own['requestAction'] = 'fak_tailgr'                
2129
+                elif own['grindType'] == "reg_nosegL":
2130
+                    own['requestAction'] = 'fak_tailgl'                        
2131
+                #33333333333
2117 2132
                     
2118 2133
                 elif own['grindType'] == "reg_tailslide":
2119 2134
                     own['requestAction'] = 'reg_tailslide'
@@ -2164,18 +2179,18 @@ def main():
2164 2179
                     own['requestAction'] = 'reg_nosegr'             
2165 2180
                 elif own['grindType'] == "reg_nosegL":
2166 2181
                     own['requestAction'] = 'reg_nosegl'             
2167
-                elif own['grindType'] == "fak_noseg":
2168
-                    own['requestAction'] = 'fak_noseg'
2169
-                elif own['grindType'] == "fak_nosegR": 
2170
-                    own['requestAction'] = 'fak_nosegr'               
2171
-                elif own['grindType'] == "fak_nosegL":
2172
-                    own['requestAction'] = 'fak_nosegl'                
2173
-                elif own['grindType'] == "fak_tailg":
2174
-                    own['requestAction'] = 'fak_tailg'
2175
-                elif own['grindType'] == "fak_tailgR": 
2176
-                    own['requestAction'] = 'fak_tailgr'
2177
-                elif own['grindType'] == "fak_tailgL":
2178
-                    own['requestAction'] = 'fak_tailgl' 
2182
+#                elif own['grindType'] == "fak_noseg":
2183
+#                    own['requestAction'] = 'fak_noseg'
2184
+#                elif own['grindType'] == "fak_nosegR": 
2185
+#                    own['requestAction'] = 'fak_nosegr'               
2186
+#                elif own['grindType'] == "fak_nosegL":
2187
+#                    own['requestAction'] = 'fak_nosegl'                
2188
+#                elif own['grindType'] == "fak_tailg":
2189
+#                    own['requestAction'] = 'fak_tailg'
2190
+#                elif own['grindType'] == "fak_tailgR": 
2191
+#                    own['requestAction'] = 'fak_tailgr'
2192
+#                elif own['grindType'] == "fak_tailgL":
2193
+#                    own['requestAction'] = 'fak_tailgl' 
2179 2194
                 elif own['grindType'] == "reg_tailslide":
2180 2195
                     own['requestAction'] = 'reg_tailslide'
2181 2196
                 elif own['grindType'] == "reg_noseslide":
@@ -2185,6 +2200,23 @@ def main():
2185 2200
                 elif own['grindType'] == "fak_noseslide":
2186 2201
                     own['requestAction'] = 'fak_noseslide'                                        
2187 2202
                     
2203
+                #3333333333
2204
+                elif own['grindType'] == "fak_noseg":
2205
+                    own['requestAction'] = 'reg_tailg'
2206
+                elif own['grindType'] == "fak_nosegR": 
2207
+                    own['requestAction'] = 'reg_tailgr'               
2208
+                elif own['grindType'] == "fak_nosegL":
2209
+                    own['requestAction'] = 'reg_tailgl'                
2210
+                elif own['grindType'] == "fak_tailg":
2211
+                    own['requestAction'] = 'reg_noseg'
2212
+                elif own['grindType'] == "fak_tailgR": 
2213
+                    own['requestAction'] = 'reg_nosegr'
2214
+                elif own['grindType'] == "fak_tailgL":
2215
+                    own['requestAction'] = 'reg_nosegl' 
2216
+                #3333333    
2217
+                    
2218
+                    
2219
+                    
2188 2220
                 elif own['grindType'] == "fak_tailslide" and edge == 1:
2189 2221
                     own['grind_stance'] = 1
2190 2222
                     own['requestAction'] = 'reg_noseslide'
@@ -2211,6 +2243,13 @@ def main():
2211 2243
                 own['lg_stance'] = 0
2212 2244
                 lg_stance = 0
2213 2245
                 #print('changing stance 0') 
2246
+                
2247
+#            if 'reg' in own['l_actionState'] and STANCE == 1:
2248
+#                print('wrong grind stance', own['requestAction'])    
2249
+#            else:
2250
+#                print('ok')    
2251
+                
2252
+                
2214 2253
             own['stance'] = STANCE                         
2215 2254
                       
2216 2255
     def rotmult():

+ 1
- 1
grindV2.py View File

@@ -509,7 +509,7 @@ def main():
509 509
         else:
510 510
             own['inverting'] = False
511 511
         grind_dist = .8#.6
512
-
512
+        #print(lastobj.worldPosition)
513 513
         if dist < grind_dist and dropin == 0 and manual == 0 and no_grind == 0 and own['grindoutturn'] == 0 and own['manual'] == 0 and own['gt_cd2'] < 40 and invert_on == False and own['air_mover'] == False and no_grind_pull == 0 and own['last_invert'] == False and own['grindjumpturn'] == 0 and grind_jump == 0 and own['airup'] == 0:
514 514
             #print('grind')      
515 515
             hitObject, hitPoint, hitNormal = own.rayCast(nearestObject.worldPosition, own.worldPosition, .0, 'grind')

+ 9
- 6
music_player.py View File

@@ -31,6 +31,7 @@ def stop_music(sound):
31 31
     print("Stop music")    
32 32
     sound.pauseSound()
33 33
     dict['mu_stopped'] = 1
34
+    dict['music_player'] = 0
34 35
     
35 36
 def play_music():
36 37
 
@@ -42,7 +43,8 @@ def play_music():
42 43
     sound.startSound()
43 44
     dict['mu_stopped'] = 0
44 45
     dict['change_track'] = 0
45
-    dict['mu_track_time'] = 0   
46
+    dict['mu_track_time'] = 0 
47
+    dict['music_player'] = 1  
46 48
 
47 49
     try:
48 50
         tag = TinyTag.get(full_path)
@@ -141,11 +143,12 @@ def main(cont):
141 143
     sound.sound = aud.Factory(full_path)
142 144
     sound.mode = 1
143 145
     initer(cont)
144
-    if dict['mu_stopped'] == 0:        
145
-        sound.startSound()
146
-    if dict['change_track'] == 1:
147
-        dict['change_track'] = 0
148
-        next_track() 
146
+    if dict['music_player'] != 0:
147
+        if dict['mu_stopped'] == 0:        
148
+            sound.startSound()
149
+        if dict['change_track'] == 1:
150
+            dict['change_track'] = 0
151
+            next_track() 
149 152
 
150 153
     plist = dict['mu_playlist']  
151 154
     pl_length = len(dict['mu_playlist'])    

+ 6
- 0
scene_init.py View File

@@ -153,5 +153,11 @@ def main():
153 153
     cam['bloom_on'] = dict['bloom_on'] 
154 154
     own['grindnew_timer'] = 0   
155 155
     own['last_ramp'] = 0
156
+    own['requestAction'] = ''
157
+    own['l_actionState'] = ''
158
+    own['actionState'] = ''
159
+    own['transition_timer'] = 0
160
+    own['transitioning'] = 0
161
+    own['driving'] = False
156 162
            
157 163
 main()

+ 27
- 3
walk.py View File

@@ -376,7 +376,7 @@ def getonboard():
376 376
     #print(dict['kb_q'])
377 377
     getonboard = own['getonboard']
378 378
     fliplay2 = 50#8560
379
-    if yBut == True or dict['kb_q'] == 2:
379
+    if (yBut == True or dict['kb_q'] == 2) and cont.sensors["carNear"].positive == False:
380 380
         fliplay3 = fliplay2 + 1 
381 381
         if dropinCol.positive == True: 
382 382
             nearestObject = None
@@ -457,7 +457,7 @@ def getonboard():
457 457
         own['throw_deck'] = False 
458 458
         throw_deck_empty = scene.objects["throw_deck_empty"]
459 459
         throw_deck_empty['kill_deck'] = 1 
460
-    if (yBut == False and lasty == True) or dict['kb_q'] == 3:               
460
+    if ((yBut == False and lasty == True) or dict['kb_q'] == 3) and cont.sensors["carNear"].positive == False:               
461 461
         own['getonboard'] = 1 
462 462
         own['walk_idling'] = 0      
463 463
 
@@ -1056,7 +1056,29 @@ def onground():
1056 1056
     if cb.positive:
1057 1057
         if own['framenum'] - own['last_fall_frame'] < 90:
1058 1058
             own['lF_ground_frame'] = own['framenum']
1059
-                                    
1059
+
1060
+def get_in_car():
1061
+    carNear = cont.sensors["carNear"]
1062
+    if carNear.positive:
1063
+        obj = carNear.hitObject
1064
+        if yBut == True:
1065
+            obj['driving'] = True
1066
+            own['driving'] = True
1067
+            scene = bge.logic.getCurrentScene()
1068
+            cam = scene.active_camera
1069
+            #cam.target = obj
1070
+            #cam.state = 2
1071
+            cont.actuators['Camera'].object = obj
1072
+            cont.actuators['Camera'].height = 3
1073
+            cont.actuators['Camera'].min = 6
1074
+            cont.actuators['Camera'].max = 10
1075
+            own.state = 2
1076
+        print('near car')  
1077
+        
1078
+def get_on_bike():
1079
+    bikeCol = cont.sensors['bikeCol']
1080
+    if bikeCol.positive and yBut == True:
1081
+        print('bike')                                          
1060 1082
                 
1061 1083
 onboard() 
1062 1084
 jump()
@@ -1075,6 +1097,8 @@ idle_anim()
1075 1097
 sit()
1076 1098
 onground()
1077 1099
 focus_deck()
1100
+get_in_car()
1101
+
1078 1102
 #printplaying() 
1079 1103
 
1080 1104
 own.alignAxisToVect([0.0,0.0,1.0], 2, .03)

Loading…
Cancel
Save