123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145 |
- ################################################
- #joystick flythrough camera for scene testing #
- #shuvit.org #
- ################################################
-
- import bge
-
- def main():
- #####
- #init
- cont = bge.logic.getCurrentController()
- own = cont.owner
- aXis = cont.sensors['stickDirections']
- bUtt = cont.sensors['buttons']
- reduction = 400000
- axisTh = 0.03
-
- #####
- #hard controller mappings
- lar_lts = 0
- uad_lts = 1
- lar_rts = 2
- uad_rts = 3
- lt = 4
- rt = 5
- a_but = 0
- b_but = 1
- x_but = 2
- y_but = 3
- l_bump = 9
- r_bump = 10
- bk_but = 4
- st_but = 6
- xb_but = 5
- lts_pr = 7
- rts_pr = 8
- l_dp = 13
- r_dp = 14
- u_dp = 11
- d_dp = 12
-
- reduction = 400000
- axisTh = 0.03
-
- #####
- #get value 0-100
- lLR = aXis.axisValues[lar_lts] / reduction / .082 * 100
- lUD = aXis.axisValues[uad_lts] / reduction / .082 * 100 - 20 / 80
- rLR = aXis.axisValues[lar_rts] / reduction / .082 * 100 - 20 / 80
- rUD = aXis.axisValues[uad_rts] / reduction / .082 * 100 - 20 / 80
- lTrig = aXis.axisValues[lt] / reduction / .082 * 100 - 20 / 80
- rTrig = aXis.axisValues[rt] / reduction / .082 * 100 - 20 / 80
-
- aBut = bUtt.getButtonStatus(a_but)
- bBut = bUtt.getButtonStatus(b_but)
- xBut = bUtt.getButtonStatus(x_but)
- yBut = bUtt.getButtonStatus(y_but)
- lBump = bUtt.getButtonStatus(l_bump)
- rBump = bUtt.getButtonStatus(r_bump)
- bkBut = bUtt.getButtonStatus(bk_but)
- stBut = bUtt.getButtonStatus(st_but)
- xbBut = bUtt.getButtonStatus(xb_but)
- ltsBut = bUtt.getButtonStatus(lts_pr)
- rtsBut = bUtt.getButtonStatus(rts_pr)
- ldPad = bUtt.getButtonStatus(l_dp)
- rdPad = bUtt.getButtonStatus(r_dp)
- udPad = bUtt.getButtonStatus(u_dp)
- ddPad = bUtt.getButtonStatus(d_dp)
-
-
- #####
- #create modified axis values
- if lLR < -20:
- lmLR = round((lLR + 20) / 80 * 100, 0)
- elif lLR > 20:
- lmLR = round((lLR - 20) / 80 * 100, 0)
- else: lmLR = 0
-
- if lUD > 20:
- lmUD = round((lUD - 20) / 80 * 100, 0)
- elif lUD < -20:
- lmUD = round((lUD + 20) / 80 * 100, 0)
- else: lmUD = 0
-
- if rLR < -20:
- rmLR = round((rLR + 20) / 80 * 100, 0)
- elif rLR > 20:
- rmLR = round((rLR - 20) / 80 * 100, 0)
- else: rmLR = 0
-
- if rUD > 20:
- rmUD = round((rUD - 20) / 80 * 100, 0)
- elif rUD < -20:
- rmUD = round((rUD + 20) / 80 * 100, 0)
- else: rmUD = 0
-
- if lTrig > 3:
- mTrig = lTrig * -1
- elif rTrig > 3:
- mTrig = rTrig
- else: mTrig = 0
-
- #move camera
- damping = .95
- damping2 = 1.005
- mult = .0005
- move_x = lmUD * mult
- move_y = lmLR * mult
- move_z = (mTrig * -mult) / 4
-
- rot_mult = -.00005
- rot_x = rmUD * rot_mult
- rot_y = rmLR * rot_mult
-
- if move_x == 0 and own['last_move_x'] != 0:
- move_x = own['last_move_x'] * damping
- if move_y == 0 and own['last_move_y'] != 0:
- move_y = own['last_move_y'] * damping
-
- move = [move_y, 0, move_x]
- own.applyMovement( move, True)
- own.applyMovement([0, 0, move_z], False)
- own.applyRotation([rot_x, 0, 0],True)
- own.applyRotation([0, 0, rot_y],False)
-
- own['lmLR'] = lmLR
- own['lmUD'] = lmUD
- own['rmLR'] = rmLR
- own['rmUD'] = rmUD
- own['mTrig'] = mTrig
- own['last_move_x'] = move_x
- own['last_move_y'] = move_y
- own['aBut'] = aBut
- own['bBut'] = bBut
- own['xBut'] = xBut
- own['yBut'] = yBut
- own['lBump'] = lBump
- own['rBump'] = rBump
- own['stBut'] = stBut
- own['bkBut'] = bkBut
- own['ltsBut'] = ltsBut
- own['rtsBut'] = rtsBut
-
- main()
|