hrrr I took the time to correct your code:

VB Code:
  1. If GetAsyncKeyState(vbKeyRight) <> 0 Then
  2.     If intMap(intTmpY, intTmpX + 1) = 0 And intMap(intTmpY2, intTmpX + 1) = 0 Then
  3.         intPX = intPX + 20 'Still dunno what's this..
  4.  
  5.         intSclX  = intSclX +1
  6.         if intSclX >20 then
  7.            intSclX =0
  8.            intScrollX =intScrollX +1
  9.         endif
  10.     End If
  11. End If

intMap(intTmpY, intTmpX + 1)

not sure how this'll work though.. it means your tiles are 1x1 pixel in size! If you had 20x20 tiles you'd need to do collision it like this:

VB Code:
  1. intMap(int(intTmpY/20), int(intTmpX/20) + 1)
etc.