Here's a little code I made just now of possible movement:
Press 'X' to jump!
DIM SHARED keyflags%(0 TO 127) 'the keyboard states
backdrop = _NEWIMAGE(640, 480, 32)
background = _NEWIMAGE(640, 480, 32)
objects = _NEWIMAGE(640, 480, 32)
characterx = 320
charactery = 300
characterz = 0
SCREEN _NEWIMAGE(640, 480, 32)
_DEST background
LINE (0, 0)-(640, 480), _RGB32(255, 255, 255), BF
DO
_LIMIT 120
IF a = 0 THEN a = 1 ELSE a = 0
_DISPLAY
_DEST objects
CLS
CIRCLE (characterx, charactery + 10), 10, _RGB32(30, 0, 0), , , .5
PAINT (characterx, charactery + 10), _RGB32(30, 0, 0)
CIRCLE (characterx, charactery - characterz), 10, _RGB32(255, 0, 0)
PAINT (characterx, charactery - characterz), _RGB32(255, 0, 0)
_CLEARCOLOR 0
'the order determines overlap.
_PUTIMAGE , background, backdrop
_PUTIMAGE , objects, backdrop
_PUTIMAGE , backdrop, 0
movefellow = 0
IF scankey(72) THEN characterspy = characterspy - .1: movefellow = 1
IF scankey(80) THEN characterspy = characterspy + .1: movefellow = 1
IF scankey(75) THEN characterspx = characterspx - .1: movefellow = 1
IF scankey(77) THEN characterspx = characterspx + .1: movefellow = 1
IF scankey(45) AND readytojump = 1 AND jump = 0 AND fall = 0 THEN jump = 1: jumpvel = 4: readytojump = 0
IF scankey(45) = 0 AND jump = 1 THEN jump = 0: fall = 1: fallvel = jumpvel / 2: readytojump = 0
IF scankey(45) = 0 AND jump = 0 AND fall = 0 THEN readytojump = 1
IF characterspy > 2 THEN characterspy = 2
IF characterspy < -2 THEN characterspy = -2
IF characterspx > 2 THEN characterspx = 2
IF characterspx < -2 THEN characterspx = -2
characterx = characterx + characterspx
charactery = charactery + characterspy
IF jump = 0 AND fall = 0 AND movefellow = 0 THEN
IF characterspx > 0 THEN characterspx = characterspx - .1
IF characterspx < 0 THEN characterspx = characterspx + .1
IF characterspy > 0 THEN characterspy = characterspy - .1
IF characterspy < 0 THEN characterspy = characterspy + .1
IF characterspx > -.1 AND characterspx < .1 THEN characterspx = 0
IF characterspy > -.1 AND characterspy < .1 THEN characterspy = 0
END IF
IF jump = 1 THEN
characterz = characterz + jumpvel
jumpvel = jumpvel - .1
IF jumpvel < 0 THEN fall = 1: jump = 0: fallvel = jumpvel
END IF
IF fall = 1 THEN
IF characterz > groundz THEN characterz = characterz + fallvel: fallvel = fallvel - .1
IF characterz <= groundz THEN characterz = 0: fall = 0
END IF
LOOP
FUNCTION scankey% (scancode%)
i% = INP(&H60)
IF i% = 170 OR i% = 54 OR i% = 42 THEN FOR a = 0 TO 127: keyflags%(a) = 0: NEXT a
IF (i% AND 128) THEN keyflags%(i% XOR 128) = 0
IF (i% AND 128) = 0 THEN keyflags%(i%) = -1
WHILE INKEY$ <> "": WEND
scankey% = keyflags%(scancode%)
END FUNCTION
I was thinking though, perhaps it could be controlled with W,A,S,D, and SPACE to jump like in a real 3D game? That would be nice, then you can aim with the mouse! Wouldn't be too hard to achieve either I think.