
-----------------------------------
jwang
Tue Dec 12, 2017 7:14 pm

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

-----------------------------------
Insectoid
Tue Dec 12, 2017 8:15 pm

RE:Animations with arrow keys
-----------------------------------
Try setting key to type char instead of string

-----------------------------------
TuringNightmares
Thu Dec 14, 2017 10:13 pm

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.
