ok the arrowkeys seem to have a press order and I think thats to do with the way windows talks to the keyboard so its out of our hands i think.
to use keys effectively tho disregarding those nasty arrow key problems u can use the keystate command
if keystate(ascii key number) = 1
perform action
endif
u can also perform multiples eg:
if keystate(ascii key number) = 1 and keystate(ascii key number) = 1
perform action
endif
Here is a small sample to see the error with the keyboard arrow keys and obtaining multiple key presses while also displaying the asci code for each key in the top left
sync on
sync rate 60
` temp text
set text size 14
` temp 3d
make object cube 1,10
rotate object 1,45,45,45
ink rgb(255,255,255),1
do
`203 <-
` 205 ->
`32a
`30d
if keystate(203)=1
text 200,100,"left arrow key pressed"
endif
if keystate(205)=1
text 200,120,"right arrow key pressed"
endif
if keystate(32)=1
text 200,140,"a arrow key pressed"
endif
if keystate(30)=1
text 200,160,"d arrow key pressed"
endif
ink rgb(0,0,0),1
box 0,0,16,16
ink rgb(255,255,255),1
text 1,1,STR$(scancode())
sync
loop