123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318 |
-
-
- import bge
- from mathutils import Vector
-
- dict = bge.logic.globalDict
- scene = bge.logic.getCurrentScene()
- skater = scene.objects["Char4"]
- TURN_SENS = .04
- TURNAMT = .03
- ACCEL_AMT = .05
-
- def get_physics_action(cont, own):
- #print(dict['lLR'])
- action = 'None'
-
- lLR = dict['lLR']
- lUD = dict['lUD']
- rLR = dict['rLR']
- rUD = dict['rUD']
- lTrig = dict['lTrig']
- rTrig = dict['rTrig']
- aBut = dict['aBut']
- bBut = dict['bBut']
- xBut = dict['xBut']
- yBut = dict['yBut']
- lBump = dict['lBump']
- rBump = dict['rBump']
- bkBut = dict['bkBut']
- stBut = dict['stBut']
- xbBut = dict['xbBut']
- ltsBut = dict['ltsBut']
- rtsBut = dict['rtsBut']
- ldPad = dict['ldPad']
- rdPad = dict['rdPad']
- udPad = dict['udPad']
- ddPad = dict['ddPad']
-
- q1oncd = own["Q1oncd"]
- q2oncd = own["Q2oncd"]
- q3oncd = own["Q3oncd"]
- q4oncd = own["Q4oncd"]
- q5oncd = own["Q5oncd"]
- q6oncd = own["Q6oncd"]
- q7oncd = own["Q7oncd"]
- q8oncd = own["Q8oncd"]
- q1oncdl = own["Q1oncdl"]
- q2oncdl = own["Q2oncdl"]
- q3oncdl = own["Q3oncdl"]
- q4oncdl = own["Q4oncdl"]
- q5oncdl = own["Q5oncdl"]
- q6oncdl = own["Q6oncdl"]
- q7oncdl = own["Q7oncdl"]
- q8oncdl = own["Q8oncdl"]
-
- q1on = 0
- q2on = 0
- q3on = 0
- q4on = 0
- q5on = 0
- q6on = 0
- q7on = 0
- q8on = 0
- lq1on = 0
- lq2on = 0
- lq3on = 0
- lq4on = 0
- lq5on = 0
- lq6on = 0
- lq7on = 0
- lq8on = 0
-
- countdown = 20
-
-
- ##################
- ###realcontrols###
- ##################
- # q1
- # q8 q2
- # q7 q3
- # q6 q4
- # q5
- ##################
-
- if lUD > .04 and lLR < -0.04 :
- lq6on = 1
- q6oncdl = countdown
- own["Q6oncdl"] = q6oncdl
- #print("lq6on")
- elif q6oncdl > 0:
- lq6on = 0
- q6oncdl = q6oncdl - 1
- own["Q6oncdl"] = q6oncdl
- #lq8
- if lUD < -.04 and lLR < -0.04 :
- lq8on = 1
- q8oncdl = countdown
- own["Q8oncdl"] = q8oncdl
- #print("lq8on")
- elif q8oncdl > 0:
- lq8on = 0
- q8oncdl = q8oncdl - 1
- own["Q8oncdl"] = q8oncdl
- #lq2
- if lUD < -.04 and lLR > 0.04 :
- lq2on = 1
- q2oncdl = countdown
- own["Q2oncdl"] = q2oncdl
- #print("lq2on")
- elif q2oncdl > 0:
- lq2on = 0
- q2oncdl = q2oncdl - 1
- own["Q2oncdl"] = q2oncdl
- #q4
- if lUD > 0.04 and lLR > 0.04 :
- lq4on = 1
- q4oncdl = countdown
- own["Q4oncdl"] = q4oncdl
- #print("lq4on")
- elif q4oncdl > 0:
- lq4on = 0
- q4oncdl = q4oncdl - 1
- own["Q4oncdl"] = q4oncdl
- #q5
- if lUD > .070 and lq4on == 0 and lq6on == 0:
- lq5on = 1
- q5oncdl = countdown
- own["Q5oncdl"] = q5oncdl
- #print("lq5on")
- elif q5oncdl > 0:
- lq5on = 0
- q5oncdl = q5oncdl - 1
- own["Q5oncdl"] = q5oncdl
- #q1
- if lUD < -0.070 and lq8on !=1 and lq2on != 1:
- lq1on = 1
- q1oncdl = countdown
- own["Q1oncdl"] = q1oncdl
- #print("lq1on")
- elif q1oncdl > 0:
- lq1on = 0
- q1oncdl = q1oncdl - 1
- own["Q1oncdl"] = q1oncdl
- #q7
- if lLR < -0.070 and lq8on != 1 and lq6on != 1:
- lq7on = 1
- q7oncdl = countdown
- own["Q7oncdl"] = q7oncdl
- #print("lq7on")
- elif q7oncdl > 0:
- lq7on = 0
- q7oncdl = q7oncdl - 1
- own["Q7oncdl"] = q7oncdl
- #q3
- if lLR > 0.070 and lq2on !=1 and lq4on != 1:
- lq3on = 1
- q3oncdl = countdown
- own["Q3oncdl"] = q3oncdl
- #print("lq3on")
- elif q3oncdl > 0:
- lq3on = 0
- q3oncdl = q3oncdl - 1
- own["Q3oncdl"] = q3oncdl
-
- ################
- #q6
- if rUD > .04 and rLR < -0.04 :
- q6on = 1
- q6oncd = countdown
- own["Q6oncd"] = q6oncd
- #print("q6on")
- elif q6oncd > 0:
- q6on = 0
- q6oncd = q6oncd - 1
- own["Q6oncd"] = q6oncd
-
- #q8
- if rUD < -.04 and rLR < -0.04 :
- q8on = 1
- q8oncd = countdown
- own["Q8oncd"] = q8oncd
- #print("q8on")
- elif q8oncd > 0:
- q8on = 0
- q8oncd = q8oncd - 1
- own["Q8oncd"] = q8oncd
- #q2
- if rUD < -.04 and rLR > 0.04 :
- q2on = 1
- q2oncd = countdown
- own["Q2oncd"] = q2oncd
- #print("q2on")
- elif q2oncd > 0:
- q2on = 0
- q2oncd = q2oncd - 1
- own["Q2oncd"] = q2oncd
-
- #q4
- if rUD > 0.04 and rLR > 0.04 :
- q4on = 1
- q4oncd = countdown
- own["Q4oncd"] = q4oncd
- #print("q4on")
- elif q4oncd > 0:
- q4on = 0
- q4oncd = q4oncd - 1
- own["Q4oncd"] = q4oncd
- #q5
- if rUD > .070 or dict['kb_space'] == 2:
- if q4on == 0 and q6on == 0:
- q5on = 1
- q5oncd = countdown
- own["Q5oncd"] = q5oncd
- elif q5oncd > 0:
- q5on = 0
- q5oncd = q5oncd - 1
- own["Q5oncd"] = q5oncd
-
- #q1
- if rUD < -0.070:
- if q2on == 0 and q8on == 0:
- #print("q1on")
- q1on = 1
- q1oncd = countdown
- own["Q1oncd"] = q1oncd
- elif q1oncd > 0:
- q1on = 0
- q1oncd = q1oncd - 1
- own["Q1oncd"] = q1oncd
-
-
-
- #q7
- if rLR < -0.070:
- if q8on == 0 and q6on == 0:
- q7on = 1
- q7oncd = countdown
- own["Q7oncd"] = q7oncd
-
- elif q7oncd > 0:
- q7on = 0
- q7oncd = q7oncd - 1
- own["Q7oncd"] = q7oncd
- #q3
- if rLR > 0.070:
- if q4on == 0 and q2on == 0:
- q3on = 1
- q3oncd = countdown
- own["Q3oncd"] = q3oncd
- elif q3oncd > 0:
- q3on = 0
- q3oncd = q3oncd - 1
- own["Q3oncd"] = q3oncd
-
-
-
- if dict['aBut'] == True:
- action = 'forward'
- if dict['lLR'] > TURN_SENS:
- action = 'turnR'
- if dict['lLR'] < -TURN_SENS:
- action = 'turnL'
- if q5oncd > 0 and q1oncd > 0 and q5oncd < q1oncd:
- action = 'jump'
-
-
- return action
-
- def do_physics_action(cont, own, action):
- if action == 'turnR':
- own.applyRotation([0,0,-TURNAMT], True)
- if action == 'turnL':
- own.applyRotation([0,0,TURNAMT], True)
- if action == 'forward':
- own.linearVelocity.x = own.linearVelocity.x - ACCEL_AMT
-
- if action == 'jump':
- own.applyForce([0,0,100], False)
- print('jump')
-
- gray = cont.sensors['r_Ground']
- if gray.positive:
- own.alignAxisToVect(Vector(gray.hitNormal)*1, 2, .25)
- else:
- own.alignAxisToVect(Vector([0,0,1]),2,.25)
-
- own.linearVelocity.y = 0
-
- if gray.positive:
- own.linearVelocity.z = own.linearVelocity.z -.05
-
- def do_anims(cont, own):
-
- skater = scene.objects["Char4"]
- skater.playAction("reg_bike.001", 20,20, layer=2, play_mode=1, speed=1)
-
-
- def main(cont):
- own = cont.owner
- try:
- bike = scene.objects['player_bike']
- #print('biking')
- if dict['yBut'] == True and dict['last_yBut'] == False:
- cont.activate(cont.actuators['walk'])
- pbike = scene.addObject('prop_bike', own, 0)
- pbike.localScale = [4.6, 4.6, 4.6]
- pbike.localScale = [1, 1, 1]
- pbike.applyRotation([0,0,1.570796], False)
- pbike.worldPosition.y = pbike.worldPosition.y - 1.
- bike.endObject()
- skater.stopAction(9)
-
- action = get_physics_action(cont, own)
- do_physics_action(cont, own, action)
- do_anims(cont,own)
- except:
- pass
|