JoyHit

BlitzMax Forums/BlitzMax Programming/JoyHit

GameScrubs(Posted 2005) [#1]
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



Chris C(Posted 2005) [#2]
[ 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...


GameScrubs(Posted 2005) [#3]
Thx