
-----------------------------------
TokenHerbz
Sat Jul 23, 2005 2:43 am

keyboard input help
-----------------------------------
i seen this in the help files


            Input.KeyDown (ball)
           
            if ball (KEY_UP_ARROW) then
                y:=y+speed
            end if
            if ball (KEY_RIGHT_ARROW) then
                x:=x+speed
            end if
            if ball (KEY_LEFT_ARROW) then
                x:=x-speed
            end if
            if ball (KEY_DOWN_ARROW) then
                y:=y-speed
            end if


But, i tryed KEY_SPACEBAR / KEY_BAR / KEY_SPACE / KEY_SPACE_BAR and well....

Can u post what i have to type to get the unput of all the keys on the keyboard...

Also, how do you rig up a press any key to continuue?

Thanks

-----------------------------------
jamonathin
Sat Jul 23, 2005 7:35 am


-----------------------------------
Well, what happens is, (KEY_WHATEVER) only works for 'keys' that dont make a character.  such as (KEY_LEFT_ARROW) , (KEY_PGDN), (KEY_ENTER).  Anything else all you do is type ('key')  where key is whatever button you pressed.  So space bar is (' ') and q is ('q')

-----------------------------------
Delos
Sat Jul 23, 2005 10:47 am


-----------------------------------

Here is a list of most of the constants

KEY_F1 .. KEY_F12    KEY_CTRL_A .. KEY_CTRL_Z 
KEY_SHIFT_F1 .. KEY_SHIFT_F12   KEY_ALT_A .. KEY_ALT_Z 
KEY_CTRL_F1 .. KEY_CTRL_F12   KEY_ALT_1 .. KEY_ALT_0 


KEY_ALT_F1 .. KEY_ALT_F12


KEY_HOME   KEY_CTRL_HOME 
KEY_UP_ARROW   KEY_CTRL_UP_ARROW 
KEY_PGUP   KEY_CTRL_PGUP 
KEY_LEFT_ARROW   KEY_CTRL_LEFT_ARROW 
KEY_RIGHT_ARROW   KEY_CTRL_RIGHT_ARROW 
KEY_END   KEY_CTRL_END 
KEY_DOWN_ARROW   KEY_CTRL_DOWN_ARROW 
KEY_PGDN   KEY_CTRL_PGDN 
KEY_INSERT   KEY_CTRL_INSERT 
KEY_DELETE   KEY_CTRL_DELETE 

KEY_BACKSPACE   KEY_KEYPAD_5 * 
KEY_TAB   KEY_SHIFT * 
KEY_ENTER   KEY_CTRL * 
KEY_ESC   KEY_ALT * 

KEY_CTRL_OPEN_BRACKET   KEY_CTRL_BACKSLASH 
KEY_CTRL_CLOSE_BRACKET   KEY_CTRL_CARET 
KEY_CTRL_UNDERSCORE   KEY_CTRL_BACKSPACE 
KEY_ALT_MINUS   KEY_ALT_EQUALS 
KEY_BACK_TAB   KEY_SHIFT_TAB 



Above constants with "ORD_" instead of "KEY_" 


ORD_A .. ORD_Z    ORD_0 .. ORD_9 
ORD_LOWER_A .. ORD_LOWER_Z    

ORD_SPACE   ORD_EXCALAMATION_MARK 
ORD_QUOTATION_MARK   ORD_HAS_MARK 
ORD_DOLLAR_SIGN   ORD_PERCENT_SIGN 
ORD_AMPERSAND   ORD_SINGLE_QUOTE 
ORD_OPEN_PARENTHESIS   ORD_CLOSE_PARENTHESIS 
ORD_ASTERISK   ORD_PLUS 
ORD_COMMA   ORD_MINUS 
ORD_PERIOD   ORD_DOT 
ORD_SLASH   ORD_COLON 
ORD_SEMICOLON   ORD_LESS_THAN 
ORD_EQUALS   ORD_GREATER_THAN 
ORD_QUESTION_MARK   ORD_AT_SIGN 
ORD_OPEN_BRACKET   ORD_BACKSLASH 
ORD_CLOSE_BRACKET   ORD_CARET 
ORD_UNDERSCORE   ORD_APOSTROPHE 
ORD_OPEN_BRACE   ORD_BAR 
ORD_CLOSE_BRACE   ORD_TILDE 


As jamonathin said, you can just use (' ') for space.  As for 'any key', you could just use an Input.Pause, which would give you your desired effect.

-----------------------------------
TokenHerbz
Sat Jul 23, 2005 12:25 pm


-----------------------------------
ok thank you....
If anywant wants to test it now!

var x, y: int
var ball : array char of boolean
var c: int
var speed: int := 1
randint (x,10,500)
randint (y,10,300)
put "Move ball with arrow keys."
put "Spacebar moves ball faster."
put "Shift to unstick your ball."
Input.Pause

%Moves ball
loop
    randint (c,1,99)
        
    Input.KeyDown (ball)
           
    if ball (KEY_UP_ARROW) then
        y:=y+speed
    end if
    if ball (KEY_RIGHT_ARROW) then
        x:=x+speed
    end if
    if ball (KEY_LEFT_ARROW) then
        x:=x-speed
    end if
    if ball (KEY_DOWN_ARROW) then
        y:=y-speed
    end if
    if x >= maxx - 5 then
        x *= -1
    elsif x = maxy - 5 then
        y *= -1
    elsif y 