setscreen("graphics:800;800")
View.Set("offscreenonly")
colorback(black)
cls
var crowd_colour:int
var x1_crowd: int
var y1_crowd: int
var counter:int:=0
var arena_x : array 1..8 of int := init (200, 200, 250, 550,
600, 600, 550, 250)
var arena_y : array 1..8 of int := init (150, 650, 700, 700,
650, 150, 100, 100)
var Score_font:int:=Font.New ("Garamond:30")
var score:int:=0
var player_score:string:=""
var puckx,pucky:int:=400
var puckychange,puckxchange:int:=1
var RD_X:int:=500
var RD_Y:int:=200
var chars : array char of boolean
var chars1 : array char of boolean
var cur_x,cur_y:int
procedure Arena
loop
counter:=counter+1
randint(crowd_colour,1,255)
randint(x1_crowd,1,800)
randint(y1_crowd,1,800)
drawfilloval(x1_crowd,y1_crowd,2,2,crowd_colour)
exit when counter=30000
end loop
end Arena
%%%Faceoff%%%%
randint(puckychange,-1,1)
if puckychange=0 then
loop
randint(puckychange,-1,1)
exit when puckychange not=0
end loop
end if
%%%%%Faceoff%%%
loop
cls
Arena
loop
Input.KeyDown (chars)
if chars (KEY_UP_ARROW) then
RD_Y := RD_Y + 2
elsif chars (KEY_DOWN_ARROW) then
RD_Y := RD_Y - 2
elsif chars (KEY_RIGHT_ARROW) then
RD_X := RD_X + 2
elsif chars (KEY_LEFT_ARROW) then
RD_X := RD_X - 2
end if
if RD_X=586 then
RD_X:=RD_X-8
elsif RD_X=224 then
RD_X:=RD_X+8
end if
if RD_Y=688 then
RD_Y:=RD_Y-8
elsif RD_Y=112 then
RD_Y:=RD_Y+8
end if
%Arena
Draw.FillPolygon (arena_x, arena_y, 8, 100)
delay(0)
puckx:=puckx+puckxchange
pucky:=pucky+puckychange
cur_x:=puckx
cur_y:=pucky
%Puck
Draw.FillOval(puckx,pucky,2,2,black)
if puckx=598 or puckx=202 then
puckxchange:=puckxchange*-1
end if
if pucky=698 or pucky=102 then
puckychange:=puckychange*-1
end if
%%%Collison
if puckx < RD_X+18 and puckx >RD_X-34 and pucky > RD_Y-15 and pucky <RD_Y+16 then
puckx:=RD_X-25
pucky:=RD_Y-2
end if
if chars(KEY_ENTER) then
puckx:=cur_x
pucky:=cur_y
puckxchange:=0
puckychange:=0
end if
%%%Target(Version1Only
Draw.Box(390,600,430,640,red)
%%%%User Right Defense
Draw.Line(RD_X+14,RD_Y+7,RD_X-25,RD_Y-5,black)
Draw.Line(RD_X-25,RD_Y-5,RD_X-30,RD_Y-2,black)
Draw.FillOval(RD_X,RD_Y,5,10,9)
Draw.FillOval(RD_X,RD_Y+12,4,4,66)
Draw.Line(RD_X+4,RD_Y+8,RD_X+14,RD_Y+8,9)
Draw.Line(RD_X-4,RD_Y+8,RD_X-14,RD_Y,9)
Draw.FillOval(RD_X-14,RD_Y,2,3,9)
Draw.FillOval(RD_X+14,RD_Y+8,2,3,9)
Draw.FillOval(RD_X-6,RD_Y-11,2,5,black)
Draw.FillOval(RD_X+6,RD_Y-11,2,5,black)
%%%%%%%%%%%%%%
%ScoreBox
Draw.FillBox(340,0,460,50,black)
player_score:=intstr(score)
Font.Draw(player_score,360,10,Score_font,40)
%Timebox
if puckxchange=0 and puckychange=0 and cur_x >390 and cur_x <430 and cur_y >600 and cur_y <640 and puckx not=RD_X-25 and pucky not=RD_Y-2 then
score:=score+1
player_score:=intstr(score)
end if
View.Update
end loop
end loop
|