JoyHit
BlitzMax Forums/BlitzMax Programming/JoyHit
| ||
| I'm reading of ppl complaining about JOYHIT, so I'm just posting My version on how I resolved it for my game. Since I'm making a figthing game JoyHit is important so this is how I got around it. This is my first post here so I don't know how to put the code comments if someone can show me I can edit the post. Let me know what you guys think
Type JoyButtonHit
Field JoyButtonHitItemList:TList = New TList
Field LastButtonPressed:buffer = New buffer
Method Pressed(ButtonID:Int,ButtonTime:Float)
Local a:buffer = New buffer
a.id = ButtonID
a.time = ButtonTime
LastButtonPressed = a
JoyButtonHitItemList.AddLast(a)
If CountList(JoyButtonHitItemList) > 20 Then JoyButtonHitItemList.RemoveFirst()
End Method
Method gotHIT:Int(ButtonID:Int,ButtonTime:Float=0,Recovery:Float=500)
Local b:buffer
Local ok:Int = 1
For b = EachIn JoyButtonHitItemList
If b.id = ButtonID Then
If b.time + Recovery > ButtonTime Then
ok = 0
Exit
EndIf
EndIf
Next
Return ok
End Method
End Type
Type buffer
Field id:Int
Field time:Float
End Type
' Somewhere on your code
Field jButtons:JoyButtonHit = New JoyButtonHit
If JoyDown(4,0) Then
If jButtons.gotHIT(JoyDown(4,0),MilliSecs(),500) = True Then
' Process any Hit Actions
Else
' Process any Button Hold
EndIf
jButtons.Pressed(JoyDown(4,0),,MilliSecs())
EndIf
|
| ||
| [ c o d e ] without spaces [ / c o d e ] does this [ c o d e b o x ] gives you scrollers in a ikkle window maybe it would be nice to have a link to the forum codes on the main forum page... |
| ||
| Thx |