No Description
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

joy_cam.py 3.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. ################################################
  2. #joystick flythrough camera for scene testing #
  3. #shuvit.org #
  4. ################################################
  5. import bge
  6. def main():
  7. #####
  8. #init
  9. cont = bge.logic.getCurrentController()
  10. own = cont.owner
  11. aXis = cont.sensors['stickDirections']
  12. reduction = 400000
  13. axisTh = 0.03
  14. #####
  15. #hard controller mappings
  16. lar_lts = 0
  17. uad_lts = 1
  18. lar_rts = 2
  19. uad_rts = 3
  20. lt = 4
  21. rt = 5
  22. a_but = 0
  23. b_but = 1
  24. x_but = 2
  25. y_but = 3
  26. l_bump = 9
  27. r_bump = 10
  28. bk_but = 4
  29. st_but = 6
  30. xb_but = 5
  31. lts_pr = 7
  32. rts_pr = 8
  33. l_dp = 13
  34. r_dp = 14
  35. u_dp = 11
  36. d_dp = 12
  37. reduction = 400000
  38. axisTh = 0.03
  39. #####
  40. #get value 0-100
  41. lLR = aXis.axisValues[lar_lts] / reduction / .082 * 100
  42. lUD = aXis.axisValues[uad_lts] / reduction / .082 * 100 - 20 / 80
  43. rLR = aXis.axisValues[lar_rts] / reduction / .082 * 100 - 20 / 80
  44. rUD = aXis.axisValues[uad_rts] / reduction / .082 * 100 - 20 / 80
  45. lTrig = aXis.axisValues[lt] / reduction / .082 * 100 - 20 / 80
  46. rTrig = aXis.axisValues[rt] / reduction / .082 * 100 - 20 / 80
  47. aBut = bUtt.getButtonStatus(a_but)
  48. bBut = bUtt.getButtonStatus(b_but)
  49. xBut = bUtt.getButtonStatus(x_but)
  50. yBut = bUtt.getButtonStatus(y_but)
  51. lBump = bUtt.getButtonStatus(l_bump)
  52. rBump = bUtt.getButtonStatus(r_bump)
  53. bkBut = bUtt.getButtonStatus(bk_but)
  54. stBut = bUtt.getButtonStatus(st_but)
  55. xbBut = bUtt.getButtonStatus(xb_but)
  56. ltsBut = bUtt.getButtonStatus(lts_pr)
  57. rtsBut = bUtt.getButtonStatus(rts_pr)
  58. ldPad = bUtt.getButtonStatus(l_dp)
  59. rdPad = bUtt.getButtonStatus(r_dp)
  60. udPad = bUtt.getButtonStatus(u_dp)
  61. ddPad = bUtt.getButtonStatus(d_dp)
  62. #####
  63. #create modified axis values
  64. if lLR < -20:
  65. lmLR = round((lLR + 20) / 80 * 100, 0)
  66. elif lLR > 20:
  67. lmLR = round((lLR - 20) / 80 * 100, 0)
  68. else: lmLR = 0
  69. if lUD > 20:
  70. lmUD = round((lUD - 20) / 80 * 100, 0)
  71. elif lUD < -20:
  72. lmUD = round((lUD + 20) / 80 * 100, 0)
  73. else: lmUD = 0
  74. if rLR < -20:
  75. rmLR = round((rLR + 20) / 80 * 100, 0)
  76. elif rLR > 20:
  77. rmLR = round((rLR - 20) / 80 * 100, 0)
  78. else: rmLR = 0
  79. if rUD > 20:
  80. rmUD = round((rUD - 20) / 80 * 100, 0)
  81. elif rUD < -20:
  82. rmUD = round((rUD + 20) / 80 * 100, 0)
  83. else: rmUD = 0
  84. if lTrig > 3:
  85. mTrig = lTrig * -1
  86. elif rTrig > 3:
  87. mTrig = rTrig
  88. else: mTrig = 0
  89. #move camera
  90. damping = .95
  91. damping2 = 1.005
  92. mult = .0005
  93. move_x = lmUD * mult
  94. move_y = lmLR * mult
  95. move_z = (mTrig * -mult) / 4
  96. rot_mult = -.00005
  97. rot_x = rmUD * rot_mult
  98. rot_y = rmLR * rot_mult
  99. if move_x == 0 and own['last_move_x'] != 0:
  100. move_x = own['last_move_x'] * damping
  101. if move_y == 0 and own['last_move_y'] != 0:
  102. move_y = own['last_move_y'] * damping
  103. move = [move_y, 0, move_x]
  104. own.applyMovement( move, True)
  105. own.applyMovement([0, 0, move_z], False)
  106. own.applyRotation([rot_x, 0, 0],True)
  107. own.applyRotation([0, 0, rot_y],False)
  108. own['lmLR'] = lmLR
  109. own['lmUD'] = lmUD
  110. own['rmLR'] = rmLR
  111. own['rmUD'] = rmUD
  112. own['mTrig'] = mTrig
  113. own['last_move_x'] = move_x
  114. own['last_move_y'] = move_y
  115. own['aBut'] = aBut
  116. own['bBut'] = bBut
  117. own['xBut'] = xBut
  118. own['yBut'] = yBut
  119. own['lBump'] = lBump
  120. own['rBump'] = rBump
  121. own['stBut'] = stBut
  122. own['bkBut'] = bkBut
  123. own['ltsBut'] = ltsBut
  124. own['rtsBut'] = rtsBut
  125. main()