Re: help!
- Posted by Robert Craig <72614.1667 at COMPUSERVE.COM> Nov 27, 1996
- 644 views
Monty King writes: > It will recognize a key is pressed, print the key number, ... > but will not act on the keypress. >while 1 do > key = get_key() > if key != -1 then > ?key > elsif key = 27 then > --what to do if esc pressed > gameover = TRUE > elsif key = 331 then > --what to do if left arrow > subtract()--tried to use an in include procedure, it didn't work ither. > elsif key = 333 then > --what to do if right arrow > lemx = lemx + 5 > ?lemx > elsif key = 336 then > lemy = lemy + 5 > --down arrow > elsif key = 328 then > lemy = lemy - 5 > --up arrow > end if >end while I think the root cause of all your difficulties is the following: > key = get_key() > if key != -1 then > ? key get_key() returns -1 when no key has been pressed. This means that any key that is pressed will cause you to execute "? key". And then the entire if statement is *finished*. You will never test for key = 331, or any other key. At most one alternative can be chosen from a chain of if-elsif-elsif-end if Try changing it to something like: if key != -1 then ? key end if if key = 27 then ...etc. elsif key = 331 then ...etc. elsif key = ...etc. end if Your concerns about global procedures etc. are probably due to this "if" problem. Regards, Rob Craig Rapid Deployment Software