setscreen ("offscreenonly")
var bulletx, bullety : flexible array 1 .. 1 of int
var bulletshot : flexible array 1 .. 1 of boolean
var shotdelay, vardelete : int := 0
var x, y : int
var chars : array char of boolean
x := 200
y := 30
bulletx (1) := 0
bullety (1) := 0
bulletshot (1) := false
loop
Input.KeyDown (chars)
View.Update
delay (5)
cls
drawfilloval (x, y, 10, 10, 7)
if chars (KEY_DOWN_ARROW) then
y -= 1
elsif chars (KEY_UP_ARROW) then
y += 1
end if
if chars (KEY_RIGHT_ARROW) then
x += 1
elsif chars (KEY_LEFT_ARROW) then
x -= 1
end if
shotdelay += 1
if shotdelay > 10 then
shotdelay := 0
end if
%%%%%%%%%%%%%%%%%%%%%
%%BULLET IS CREATED%%
%%%%%%%%%%%%%%%%%%%%%
if shotdelay = 0 then
if chars ('q') then
new bulletx, upper (bulletx) + 1
new bullety, upper (bullety) + 1
new bulletshot, upper (bulletshot) + 1
bulletx (upper (bulletx)) := x
bullety (upper (bullety)) := y
bulletshot (upper (bulletshot)) := true
end if
end if
%%%%%%%%%%%%%%%%%%%%
%%BULLET IS MOVING%%
%%%%%%%%%%%%%%%%%%%%
for i : 1 .. upper (bulletshot)
if bulletshot (i) = true then
bullety (i) += 5
drawline (bulletx (i), bullety (i), bulletx (i), bullety (i) + 20, 7)
end if
end for
%%%%%%%%%%%%%%%%%%%%%
%%BULLET IS STOPPED%%
%%%%%%%%%%%%%%%%%%%%%
for i : 1 .. upper (bulletshot)
if bulletshot (i) = true and bullety (i) > maxy then
vardelete := i
end if
end for
if vardelete > 0 then
for i : vardelete + 1 .. upper (bulletshot)
bulletshot (i - 1) := bulletshot (i)
bulletx (i - 1) := bulletx (i)
bullety (i - 1) := bullety (i)
end for
vardelete := 0
new bulletx, upper (bulletx) - 1
new bullety, upper (bullety) - 1
new bulletshot, upper (bulletshot) - 1
end if
end loop
|