var chars : array char of boolean
 
var walking, walkingright, walkingleft : boolean := false
 
var x, y, x2, y2 : int
 
x := 300
 
y := 240
 
x2 := 340
 
y2 := 260
 
%setscreen ("offscreenonly")
 
 
proc backset
 
    drawfillbox (0, 0, 640, 480, green)
 
end backset
 
 
 proc charmove
 
 
drawfillbox (x, y, x2, y2, red)
 
drawfilloval (x, y + 10, 10, 10, red)
 
drawfilloval (x + 40, y + 10, 10, 10, red)
 
drawfillbox (x, y, x2, y2 - 25, blue)
 
drawfilloval (x + 20, y + 14, 11, 11, grey)
 
%View.Update
 
loop
 
 
    Input.KeyDown (chars)
 
 
    if chars (KEY_UP_ARROW) then
 
        walking := true
 
        y := y + 5
 
        y2 := y2 + 5
 
        delay (10)
 
 
    elsif chars (KEY_RIGHT_ARROW) then
 
        walkingright := true
 
        x := x + 5
 
        x2 := x2 + 5
 
        delay (10)
 
 
    elsif chars (KEY_DOWN_ARROW) then
 
        y := y - 5
 
        y2 := y2 - 5
 
        delay (10)
 
 
    elsif chars (KEY_LEFT_ARROW) then
 
        walkingleft := true
 
        x := x - 5
 
        x2 := x2 - 5
 
        delay (10)
 
 
    else
 
        walking := false
 
        walkingright := false
 
        walkingleft := false
 
    end if
 
 
    if walking = true then
 
        drawfillbox (x, y, x2, y2 - 35, blue)
 
    end if
 
 
    if walkingleft = true then
 
        drawfillbox (x, y, x2 + 10, y2 - 25, blue)
 
    end if
 
 
    if walkingright = true then
 
        drawfillbox (x - 10, y, x2, y2 - 25, blue)
 
    end if
 
 
    drawfillbox (x, y, x2, y2, red)
 
    drawfilloval (x, y + 10, 10, 10, red)
 
    drawfilloval (x + 40, y + 10, 10, 10, red)
 
    drawfillbox (x, y, x2, y2 - 25, blue)
 
    drawfilloval (x + 20, y + 14, 11, 11, grey)
 
    backset
 
    %View.Update
 
end loop
 
 
end charmove
 
 
 
 
charmove
 
  |