Animations with arrow keys
Author |
Message |
jwang
|
Posted: Tue Dec 12, 2017 7:14 pm Post subject: Animations with arrow keys |
|
|
I am trying to make my picture in the program move using arrow keys.
But the arrow keys won't work on the output screen
%Set screen up
setscreen("nocursor")
setscreen("noecho")
%Declaration Section
var key:string(1)
%Procedure section
procedure Picture
loop
cls
var pictureID:int:=Pic.FileNew("Lighthouse.jpg")
var x,y:int:=0
Pic.Draw(pictureID,x,y,picMerge)
getch(key)
if key=chr(205) then
x:=x+1
elsif key=chr(203) then
x:=x-1
elsif key=chr(200) then
y:=y-1
elsif key=chr(208) then
y:=y+1
end if
exit when key=chr(27)
end loop
end Picture
%Main Program
Picture |
|
|
|
|
|
Sponsor Sponsor
|
|
|
Insectoid
|
Posted: Tue Dec 12, 2017 8:15 pm Post subject: RE:Animations with arrow keys |
|
|
Try setting key to type char instead of string |
|
|
|
|
|
TuringNightmares
|
Posted: Thu Dec 14, 2017 10:13 pm Post subject: Re: Animations with arrow keys |
|
|
The line:
var x,y:int:=0
is inside the for loop, so every time the loop executes x and y get re-initialized to 0. Declaring them outside the loop, like so, would prevent them from resetting to 0 and allow the picture to change position:
%Procedure section
procedure Picture
var x,y:int:=0
loop
cls
var pictureID:int:=Pic.FileNew("Lighthouse.jpg")
Pic.Draw(pictureID,x,y,picMerge)
getch(key)
...
I'd also recommend moving the line:
var pictureID:int:=Pic.FileNew("Lighthouse.jpg")
outside the loop just so it only assigns pictureID once to prevent using more memory. |
|
|
|
|
|
|
|