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
|