var x : int := 100
var y : int := 410
var x2 : int := 100
var y2 : int := 70
var jet1nofire : int
var jet1fire : int
var jet2nofire : int
var jet2fire : int
var Clouds : int
var Clouds2 : int
var Clouds3 : int
var Clouds4 : int
var skywidth, skyheight : int := 0
var skywidth2, skyheight2 : int := 0
var skywidth3, skyheight3 : int := 0
var skywidth4, skyheight4 : int := 0
var skyx, skyy : int := 0
var skyxedge : int := 640
var skyyedge : int := 480
Clouds := Pic.FileNew ("Clouds.bmp")
Clouds2 := Pic.FileNew ("Clouds.bmp")
Clouds2 := Pic.Mirror (Clouds2)
Clouds3 := Pic.FileNew ("Clouds.bmp")
Clouds3 := Pic.Flip (Clouds3)
Clouds4 := Pic.FileNew ("Clouds.bmp")
Clouds4 := Pic.Flip (Clouds4)
Clouds4 := Pic.Mirror (Clouds4)
jet1nofire := Pic.FileNew ("jet1nofire.bmp")
Pic.SetTransparentColour (jet1nofire, white)
jet1fire := Pic.FileNew ("jet1fire.bmp")
Pic.SetTransparentColour (jet1fire, white)
jet2nofire := Pic.FileNew ("jet2nofire.bmp")
Pic.SetTransparentColour (jet2nofire, white)
jet2fire := Pic.FileNew ("jet2fire.bmp")
Pic.SetTransparentColour (jet2fire, white)
var jethealth1 : real := 100
var jethealth2 : real := 100
var score1 : int := 0
var score2 : int := 0
var bullets : int
var bullets2 : int
const uparrow : char := chr (200)
const leftarrow : char := chr (203)
const rightarrow : char := chr (205)
const downarrow : char := chr (208)
const ctrl : char := chr (181)
const w : char := chr (119)
const a : char := chr (97)
const d : char := chr (100)
const s : char := chr (115)
const f : char := chr (102)
var choice : string
var keys : array char of boolean
View.Set ("offscreenonly")
setscreen ("graphics:max;max,noecho,offscreenonly,nocursor,nobuttonbar")
procedure drawscreen
skywidth := Pic.Width (Clouds)
skyheight := Pic.Height (Clouds)
skywidth2 := Pic.Width (Clouds2)
skyheight2 := Pic.Height (Clouds2)
skywidth3 := Pic.Width (Clouds3)
skyheight3 := Pic.Height (Clouds3)
skywidth4 := Pic.Width (Clouds4)
skyheight4 := Pic.Height (Clouds4)
Pic.Draw (Clouds, -skyx, -skyy, picUnderMerge)
Pic.Draw (Clouds2, skyxedge, -skyy, picUnderMerge)
Pic.Draw (Clouds3, -skyx, skyyedge, picUnderMerge)
Pic.Draw (Clouds4, skyxedge, skyyedge, picUnderMerge)
locate (1, 1)
put "Player 1:", "" : 2, "Health: ", jethealth1 ..
put " ", "Score: ", score1
put "Player 2:", "" : 2, "Health: ", jethealth2 ..
put " ", "Score: ", score2
end drawscreen
colourback (black)
colour (brightred)
drawscreen
colourback (black)
colour (brightred)
Pic.Draw (jet1nofire, x, y, picMerge)
Pic.Draw (jet2nofire, x2, y2, picMerge)
delay (2000)
loop
exit when jethealth1 <= 0 and jethealth2 <= 0
%player 1
Input.KeyDown (keys)
if keys (uparrow) then
y := y + 2
delay (5)
cls
View.Update
drawscreen
Pic.Draw (jet1nofire, x, y, picMerge)
end if
if keys (downarrow) then
y := y - 2
delay (5)
cls
View.Update
drawscreen
Pic.Draw (jet1nofire, x, y, picMerge)
end if
if keys (rightarrow) then
x := x + 4
delay (5)
cls
View.Update
drawscreen
Pic.Draw (jet1fire, x, y, picMerge)
end if
if keys (leftarrow) then
x := x - 4
delay (5)
cls
View.Update
drawscreen
Pic.Draw (jet1nofire, x, y, picMerge)
end if
if keys (ctrl) then
randint (bullets, 1, 5)
for shot : 1 .. 15
drawline (x + 22 + shot * 20 + bullets, y + 22, x + 24 + shot * 20 + bullets, y + 22, 12)
drawline (x + 22 + shot * 20 + bullets, y + 39, x + 24 + shot * 20 + bullets, y + 39, 12)
drawline (x + 20 + shot * 20 + bullets, y + 22, x + 23 + shot * 20 + bullets, y + 22, 15)
drawline (x + 20 + shot * 20 + bullets, y + 39, x + 23 + shot * 20 + bullets, y + 39, 15)
delay (5)
end for
cls
View.Update
drawscreen
end if
%player 2
if keys (w) then
y2 := y2 + 2
delay (5)
cls
View.Update
drawscreen
Pic.Draw (jet2nofire, x2, y2, picMerge)
end if
if keys (s) then
y2 := y2 - 2
delay (5)
cls
View.Update
drawscreen
Pic.Draw (jet2nofire, x2, y2, picMerge)
end if
if keys (d) then
x2 := x2 + 4
delay (5)
cls
View.Update
drawscreen
Pic.Draw (jet2fire, x2, y2, picMerge)
end if
if keys (a) then
x2 := x2 - 4
delay (5)
cls
View.Update
drawscreen
Pic.Draw (jet2nofire, x2, y2, picMerge)
end if
if keys (f) then
randint (bullets2, 1, 5)
for shot2 : 1 .. 15
drawline (x2 + 22 + shot2 * 20 + bullets2, y2 + 23, x2 + 24 + shot2 * 20 + bullets2, y2 + 23, 12)
drawline (x2 + 22 + shot2 * 20 + bullets2, y2 + 41, x2 + 24 + shot2 * 20 + bullets2, y2 + 41, 12)
drawline (x2 + 20 + shot2 * 20 + bullets2, y2 + 23, x2 + 23 + shot2 * 20 + bullets2, y2 + 23, 15)
drawline (x2 + 20 + shot2 * 20 + bullets2, y2 + 41, x2 + 23 + shot2 * 20 + bullets2, y2 + 41, 15)
delay (5)
end for
cls
View.Update
drawscreen
end if
end loop
cls
put "Game Over"
|