Are you using different codes to handle collision with each input? Maybe you should translate stick input into button input:
Example:
'Function to translate stick input into button input. '@param B Integer. Bit map made by button() function DEF stickToButton(B) VAR CX,CX STICK OUT CX,CY VAR DZ=0.3 'Dead zone. IF CX<-DZ THEN B=B OR #LEFT IF CX>DZ THEN B=B OR #RIGHT IF CY<-DZ THEN B=B OR #DOWN IF CY>DZ THEN B=B OR #UP RETURN B END ... 'Usage VAR B=BUTTON() B=stickToButton(B) ...'Handle input