November 28, 2020, 11:46:19 AM

Author Topic: [bb] xinput device test by bloos_magoos [ 1+ years ago ]  (Read 541 times)

Offline BlitzBot

  • Jr. Member
  • **
  • Posts: 1
[bb] xinput device test by bloos_magoos [ 1+ years ago ]
« on: June 29, 2017, 12:28:40 AM »
Title : xinput device test
Author : bloos_magoos
Posted : 1+ years ago

Description : This uses code from xtremegamr, and adds a nice interface to graphically show input from your xbox controller.  Use it to see if your controller is being detected by blitz.

Code :
Code: BlitzBasic
  1. ;Xbox 360 Controller Library
  2. ;Programmed by xtremegamr
  3.  
  4. ;All Functions have X360_ before them
  5.  
  6.  
  7. Graphics 1024,768,0,2
  8. AppTitle "Xinput Demo by bloos_magoos"
  9.  
  10. While Not KeyHit(1)
  11.         Cls
  12.        
  13.         ;Test left stick
  14.         Text 0,120,"Left Stick X - "+Int(X360_LeftStickX(0))
  15.         Text 0,130,"Left Stick Y - " + Int(X360_LeftStickY(0))
  16.         Oval 0,0,100,100,0
  17.         Oval 50+X360_LeftStickX(0)*50,50+X360_LeftStickY(0)*50,1,1,1
  18.        
  19.         ;Right
  20.         Text 200,120,"Right Stick X - "+Int(X360_RightStickX(0))
  21.         Text 200,130,"Right Stick Y - " + Int(X360_RightStickY(0))
  22.         Oval 100,0,100,100,0
  23.         Oval 150+X360_RightStickX(0)/4,50+X360_RightStickY(0)/4,1,1,1
  24.        
  25.         Text 300,50,"<--- LOL (.)(.)"
  26.         Text 300,60,"Right Analog Stick Graphic is not exact because the function returns a 180 instead of 1"
  27.         Line 0,180,1024,180 ;separator
  28.         ;///////
  29.         ;testing triggers
  30.         ;right
  31.         Rect 50,200,50,10,0
  32.         Rect 50,200,50,Int(-X360_ReturnTrigger(0)*10),1
  33.         ;Left
  34.         Rect 0,200,50,10,0
  35.         Rect 0,200,50,Int(X360_ReturnTrigger(0)*10),1
  36.        
  37.        
  38.        
  39.        
  40.         Text 0,230,"NOTICE - - Pressing both triggers makes trigger axis return zero :("
  41.         Text 0,240,"  This is because the triggers are read as one axis, so pressing both adds 1+ -1 (which is zero.)"
  42.         Text 0,250,"  If anybody knows how to fix this, lemme know"
  43.         Text 0,270,"Trigger Axis ->" +Int(X360_ReturnTrigger(0))
  44.         Line 0,300,1024,300 ;separator
  45.         ;////////
  46.         ;Buttons
  47.        
  48.        
  49.         If Not X360_AButtonDown(0)
  50.                 Text 0,310,"A"
  51.                 Else Text 0,310,">>A<<"
  52.         EndIf
  53.        
  54.        
  55.         If Not X360_BButtonDown(0)
  56.                 Text 0,320,"B"
  57.                 Else Text 0,320,">>B<<"
  58.         EndIf
  59.        
  60.         If Not X360_XButtonDown(0)
  61.                 Text 0,330,"X"
  62.                 Else Text 0,330,">>X<<"
  63.         EndIf
  64.        
  65.         If Not X360_YButtonDown(0)
  66.                 Text 0,340,"Y"
  67.                 Else Text 0,340,">>Y<<"
  68.         EndIf
  69.        
  70.         If Not X360_RBButtonDown(0)
  71.                 Text 0,360,"Right Bumper"
  72.                 Else Text 0,360,">>Right Bumper<<"
  73.         EndIf
  74.        
  75.         If Not X360_LBButtonDown(0)
  76.                 Text 0,370,"Left Bumper"
  77.                 Else Text 0,370,">>Left Bumper<<"
  78.         EndIf
  79.        
  80.         If Not X360_LStickButtonDown(0)
  81.                 Text 0,390,"Left Stick"
  82.                 Else Text 0,390,">>Left Stick<<"
  83.         EndIf
  84.        
  85.         If Not X360_RStickButtonDown(0)
  86.                 Text 0,400,"Right Stick"
  87.                 Else Text 0,400,">>Right Stick<<"
  88.         EndIf
  89.        
  90.         If Not X360_StartButtonDown(0)
  91.                 Text 0,420,"Start"
  92.                 Else Text 0,420,">>Start<<"
  93.         EndIf
  94.        
  95.         If Not X360_BackButtonDown(0)
  96.                 Text 0,430,"Back"
  97.                 Else Text 0,430,">>Back<<"
  98.         EndIf
  99.        
  100.         Line 0,450,1024,450 ;separator
  101.         ;////////////
  102.         ;Dpad
  103.         dir=X360_DPadDir(0)
  104.        
  105.         Text 0,500,"D-PAD"
  106.         If dir=1
  107.                 Text 0,520,"^ up"
  108.         EndIf
  109.        
  110.         If dir=2
  111.                 Text 0,520,"^ + > up+right"
  112.         EndIf
  113.        
  114.         If dir=3
  115.                 Text 0,520,"> right"
  116.         EndIf
  117.        
  118.         If dir=4
  119.                 Text 0,520,"v + > down+right"
  120.         EndIf
  121.        
  122.         If dir=5
  123.                 Text 0,520,"v down"
  124.         EndIf
  125.        
  126.         If dir=6
  127.                 Text 0,520,"v + < down+left"
  128.         EndIf
  129.        
  130.         If dir=7
  131.                 Text 0,520,"< left"
  132.         EndIf
  133.        
  134.         If dir=8
  135.                 Text 0,520,"^ + < up+left"
  136.         EndIf
  137.        
  138.         If dir=0
  139.                 Text 0,520," - - "
  140.         EndIf
  141.        
  142.         If dir=-1
  143.                 RuntimeError "Something happened I guess"
  144.         EndIf
  145.                
  146.        
  147.        
  148.        
  149.        
  150.        
  151.         Flip
  152. Wend
  153.  
  154.  
  155. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  156. ;
  157. ;LeftStickX#()
  158. ;returns the x position of the Left Stick
  159. Function X360_LeftStickX#(port)
  160.        
  161.         If port=-1 Then
  162.                 returnvalue#=JoyX()
  163.         Else
  164.                 returnvalue#=JoyX(port)
  165.         End If
  166.        
  167.         Return returnvalue#
  168.        
  169. End Function
  170.  
  171. ;LeftStickY#()
  172. ;returns the y position of the Left Stick
  173. Function X360_LeftStickY#(port)
  174.        
  175.         If port=-1 Then
  176.                 returnvalue#=JoyY()
  177.         Else
  178.                 returnvalue#=JoyY(port)
  179.         End If
  180.        
  181.         Return returnvalue#
  182.        
  183. End Function
  184.  
  185. ;LeftStickXDir()
  186. ;returns the x direction of the Left Stick
  187. Function X360_LeftStickXDir(port)
  188.        
  189.         If port=-1 Then
  190.                 returnvalue=JoyXDir()
  191.         Else
  192.                 returnvalue=JoyXDir(port)
  193.         End If
  194.        
  195.         Return returnvalue
  196.        
  197. End Function
  198.  
  199. ;LeftStickYDir()
  200. ;return the y direction of the Left Stick
  201. Function X360_LeftStickYDir(port)
  202.        
  203.         If port=-1 Then
  204.                 returnvalue=JoyYDir()
  205.         Else
  206.                 returnvalue=JoyYDir(port)
  207.         End If
  208.        
  209.         Return returnvalue
  210.        
  211. End Function
  212.  
  213. ;RightStickX#()
  214. ;returns the x position of the Right Stick
  215. Function X360_RightStickX#(port)
  216.        
  217.         If port=-1 Then
  218.                 returnvalue=JoyPitch()
  219.         Else
  220.                 returnvalue=JoyPitch(port)
  221.         End If
  222.        
  223.         Return returnvalue
  224.        
  225. End Function
  226.  
  227. ;RightStickY#()
  228. ;returns the y position of the Right Stick
  229. Function X360_RightStickY#(port)
  230.        
  231.         If port=-1 Then
  232.                 returnvalue=JoyYaw()
  233.         Else
  234.                 returnvalue=JoyYaw(port)
  235.         End If
  236.        
  237.         Return returnvalue
  238.        
  239. End Function
  240.  
  241. ;RightStickXDir#()
  242. ;returns the x direction of the Right Stick
  243. Function X360_RightStickXDir(neutral,port)
  244.        
  245.         If port=-1 Then
  246.                 If JoyPitch()<neutral Then returnvalue=-1
  247.                 If JoyPitch()>neutral Then returnvalue=1
  248.         Else
  249.                 If JoyPitch(port)<neutral Then returnvalue=-1
  250.                 If JoyPitch(port)>neutral Then returnvalue=1
  251.         End If
  252.        
  253.         Return returnvalue
  254.        
  255. End Function
  256.  
  257. ;RightStickYDir#()
  258. ;returns the y direction of the Right Stick
  259. Function X360_RightStickYDir(neutral,port)
  260.        
  261.         If port=-1 Then
  262.                 If JoyYaw()<neutral Then returnvalue=-1
  263.                 If JoyYaw()>neutral Then returnvalue=1
  264.         Else
  265.                 If JoyYaw(port)<neutral Then returnvalue=-1
  266.                 If JoyYaw(port)>neutral Then returnvalue=1
  267.         End If
  268.        
  269.         Return returnvalue
  270.        
  271. End Function
  272.  
  273. ;ReturnTrigger#()
  274. ;returns trigger value (joyz)
  275. Function X360_ReturnTrigger#(port)
  276.        
  277.         If port=-1 Then
  278.                 returnvalue#=JoyZ()
  279.         Else
  280.                 returnvalue#=JoyZ(port)
  281.         End If
  282.        
  283.         Return returnvalue#
  284.        
  285. End Function
  286.  
  287. ;TriggerDown()
  288. ;returns the value of the current trigger that is down
  289. Function X360_TriggerDown(port)
  290.        
  291.         If port=-1 Then
  292.                 z=JoyZDir()
  293.         Else
  294.                 z=JoyZDir(port)
  295.         End If
  296.        
  297. ;return
  298.         Return z
  299.        
  300. End Function
  301.  
  302. ;AButtonHit()
  303. ;returns true is the a button was hit
  304. Function X360_AButtonHit(port)
  305.        
  306.         If port=-1 Then
  307.                 If JoyHit(1) Then Return True
  308.         Else
  309.                 If JoyHit(1,port) Then Return True
  310.         End If
  311.        
  312.         Return False
  313.        
  314. End Function
  315.  
  316. ;BButtonHit()
  317. ;returns true is the b button was hit
  318. Function X360_BButtonHit(port)
  319.        
  320.         If port=-1 Then
  321.                 If JoyHit(2) Then Return True
  322.         Else
  323.                 If JoyHit(2,port) Then Return True
  324.         End If
  325.        
  326.         Return False
  327.        
  328. End Function
  329.  
  330. ;YButtonHit()
  331. ;returns true is the y button was hit
  332. Function X360_YButtonHit(port)
  333.        
  334.         If port=-1 Then
  335.                 If JoyHit(4) Then Return True
  336.         Else
  337.                 If JoyHit(4,port) Then Return True
  338.         End If
  339.        
  340.         Return False
  341.        
  342. End Function
  343.  
  344. ;XButtonHit()
  345. ;returns true is the x button was hit
  346. Function X360_XButtonHit(port)
  347.        
  348.         If port=-1 Then
  349.                 If JoyHit(3) Then Return True
  350.         Else
  351.                 If JoyHit(3,port) Then Return True
  352.         End If
  353.        
  354.         Return False
  355.        
  356. End Function
  357.  
  358. ;RBButtonHit()
  359. ;returns true is the rbumper was hit
  360. Function X360_RBButtonHit(port)
  361.        
  362.         If port=-1 Then
  363.                 If JoyHit(6) Then Return True
  364.         Else
  365.                 If JoyHit(6,port) Then Return True
  366.         End If
  367.        
  368.         Return False
  369.        
  370. End Function
  371.  
  372. ;LBButtonHit()
  373. ;returns true is the lbumper was hit
  374. Function X360_LBButtonHit(port)
  375.        
  376.         If port=-1 Then
  377.                 If JoyHit(5) Then Return True
  378.         Else
  379.                 If JoyHit(5,port) Then Return True
  380.         End If
  381.        
  382.         Return False
  383.        
  384. End Function
  385.  
  386. ;StartButtonHit()
  387. ;returns true is the start button was hit
  388. Function X360_StartButtonHit(port)
  389.        
  390.         If port=-1 Then
  391.                 If JoyHit(8) Then Return True
  392.         Else
  393.                 If JoyHit(8,port) Then Return True
  394.         End If
  395.        
  396.         Return False
  397.        
  398. End Function
  399.  
  400. ;BackButtonHit()
  401. ;returns true is the x button was hit
  402. Function X360_BackButtonHit(port)
  403.        
  404.         If port=-1 Then
  405.                 If JoyHit(7) Then Return True
  406.         Else
  407.                 If JoyHit(7,port) Then Return True
  408.         End If
  409.        
  410.         Return False
  411.        
  412. End Function
  413.  
  414. ;LStickButtonHit()
  415. ;returns true is the left stick pressed in (hit)
  416. Function X360_LStickButtonHit(port)
  417.        
  418.         If port=-1 Then
  419.                 If JoyHit(9) Then Return True
  420.         Else
  421.                 If JoyHit(9,port) Then Return True
  422.         End If
  423.        
  424.         Return False
  425.        
  426. End Function
  427.  
  428. ;RStickButtonHit()
  429. ;returns true is the right stick pressed in (hit)
  430. Function X360_RStickButtonHit(port)
  431.        
  432.         If port=-1 Then
  433.                 If JoyHit(10) Then Return True
  434.         Else
  435.                 If JoyHit(10,port) Then Return True
  436.         End If
  437.        
  438.         Return False
  439.        
  440. End Function
  441.  
  442. ;AButtonDown()
  443. ;returns true is the a button was Down
  444. Function X360_AButtonDown(port)
  445.        
  446.         If port=-1 Then
  447.                 If JoyDown(1) Then Return True
  448.         Else
  449.                 If JoyDown(1,port) Then Return True
  450.         End If
  451.        
  452.         Return False
  453.        
  454. End Function
  455.  
  456. ;BButtonDown()
  457. ;returns true is the b button was Down
  458. Function X360_BButtonDown(port)
  459.        
  460.         If port=-1 Then
  461.                 If JoyDown(2) Then Return True
  462.         Else
  463.                 If JoyDown(2,port) Then Return True
  464.         End If
  465.        
  466.         Return False
  467.        
  468. End Function
  469.  
  470. ;YButtonDown()
  471. ;returns true is the y button was Down
  472. Function X360_YButtonDown(port)
  473.        
  474.         If port=-1 Then
  475.                 If JoyDown(4) Then Return True
  476.         Else
  477.                 If JoyDown(4,port) Then Return True
  478.         End If
  479.        
  480.         Return False
  481.        
  482. End Function
  483.  
  484. ;XButtonDown()
  485. ;returns true is the x button was Down
  486. Function X360_XButtonDown(port)
  487.        
  488.         If port=-1 Then
  489.                 If JoyDown(3) Then Return True
  490.         Else
  491.                 If JoyDown(3,port) Then Return True
  492.         End If
  493.        
  494.         Return False
  495.        
  496. End Function
  497.  
  498. ;RBButtonDown()
  499. ;returns true is the rbumper was Down
  500. Function X360_RBButtonDown(port)
  501.        
  502.         If port=-1 Then
  503.                 If JoyDown(6) Then Return True
  504.         Else
  505.                 If JoyDown(6,port) Then Return True
  506.         End If
  507.        
  508.         Return False
  509.        
  510. End Function
  511.  
  512. ;LBButtonDown()
  513. ;returns true is the lbumper was Down
  514. Function X360_LBButtonDown(port)
  515.        
  516.         If port=-1 Then
  517.                 If JoyDown(5) Then Return True
  518.         Else
  519.                 If JoyDown(5,port) Then Return True
  520.         End If
  521.        
  522.         Return False
  523.        
  524. End Function
  525.  
  526. ;StartButtonDown()
  527. ;returns true is the start button was Down
  528. Function X360_StartButtonDown(port)
  529.        
  530.         If port=-1 Then
  531.                 If JoyDown(8) Then Return True
  532.         Else
  533.                 If JoyDown(8,port) Then Return True
  534.         End If
  535.        
  536.         Return False
  537.        
  538. End Function
  539.  
  540. ;BackButtonDown()
  541. ;returns true is the x button was Down
  542. Function X360_BackButtonDown(port)
  543.        
  544.         If port=-1 Then
  545.                 If JoyDown(7) Then Return True
  546.         Else
  547.                 If JoyDown(7,port) Then Return True
  548.         End If
  549.        
  550.         Return False
  551.        
  552. End Function
  553.  
  554. ;LStickButtonDown()
  555. ;returns true is the left stick pressed in (Down)
  556. Function X360_LStickButtonDown(port)
  557.        
  558.         If port=-1 Then
  559.                 If JoyDown(9) Then Return True
  560.         Else
  561.                 If JoyDown(9,port) Then Return True
  562.         End If
  563.        
  564.         Return False
  565.        
  566. End Function
  567.  
  568. ;RStickButtonDown()
  569. ;returns true is the right stick pressed in (Down)
  570. Function X360_RStickButtonDown(port)
  571.        
  572.         If port=-1 Then
  573.                 If JoyDown(10) Then Return True
  574.         Else
  575.                 If JoyDown(10,port) Then Return True
  576.         End If
  577.        
  578.         Return False
  579.        
  580. End Function
  581.  
  582.  
  583. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  584. ;
  585. ;
  586. ;;xtremegamr 's code for the DPAD
  587.  
  588. ;DPadDir()
  589. ;returns the direction of the d-pad
  590. Function X360_DPadDir(port)
  591.        
  592.         If port=-1 Then
  593.                 dir=JoyHat()
  594.         Else
  595.                 dir=JoyHat(port)
  596.         End If
  597.        
  598. ;check direction
  599.         Select dir
  600.                 Case 0 ;up
  601.                         Return 1
  602.                 Case 45 ;up-right
  603.                         Return 2
  604.                 Case 90 ;right
  605.                         Return 3
  606.                 Case 135 ;down-right
  607.                         Return 4
  608.                 Case 180 ;down
  609.                         Return 5
  610.                 Case 225 ;down-left
  611.                         Return 6
  612.                 Case 270 ;left
  613.                         Return 7
  614.                 Case 315 ;up-left
  615.                         Return 8
  616.                 Case -1 ;no direction pressed
  617.                         Return 0
  618.                 Default ;just in case something goes VERY wrong
  619.                         Return -1
  620.         End Select
  621.        
  622. End Function


Comments : none...

 

SimplePortal 2.3.6 © 2008-2014, SimplePortal