################################################ #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()