I also will work on the transition between levels and understand how the game will gain power-ups etc..
View.Set ("graphics:1000;500,buttonbar,offscreenonly")
var BoxX1, BoxX2, BoxY1, BoxY2, BallX, BallY, BallRadius, move, BallRand, Color, font1, font2, font3 : int
var chars : array char of boolean
var chars1, chars2 : char
BoxX1 := maxx div 2
BoxX2 := maxx div 2.4
BoxY1 := maxy div 10
BoxY2 := maxy div 4.7
BallX := maxx - 12
BallY := maxy div 1.9
BallRadius := 12
move := 1
BallRand := Rand.Int (10, 1000)
Color := 30
font1 := Font.New ("Comic Sans:30:bold")
font2 := Font.New ("Comic Sans:10:bold")
font3 := Font.New ("Comic Sans :30:bold")
procedure GameMenu
loop
drawfillbox (0, 0, maxx, maxy, 103)
Font.Draw ("Welcome to Umang's Hardest Game", maxx div 7, maxy div 2, font1, red)
Font.Draw ("To Start Press, 'S' ", maxx div 2, maxy div 4, font2, red)
Font.Draw ("To View Controls, Press 'C' ", maxx div 2, maxy div 6, font2, red)
get chars1
if chars1 = ('S')
then
exit
elsif chars1 = ('C')
then
drawfillbox (0, 0, maxx, maxy, 103)
Font.Draw ("Controls", maxx div 2, maxy div 1.4, font3, red)
Font.Draw ("To Return, press 'R'", maxx div 1.5, maxy div 10, font2, red)
Font.Draw ("To Start Press, 'S' ", maxx div 2, maxy div 4, font2, red)
get chars2
if chars2 = ('S')
then
exit
elsif chars2 = ('R')
then
end if
end if
end loop
end GameMenu
GameMenu
loop
drawfillbox (0, 0, maxx, maxy, 149)
drawfilloval (BallX, BallY, BallRadius, BallRadius, 30)
drawfilloval (BallX, BallY + 50, BallRadius, BallRadius, 30)
drawfillbox (BoxX1, BoxY1, BoxX2, BoxY2, Color)
drawfilloval (BallX, BallY + 150, BallRadius, BallRadius, 30)
drawfilloval (BallX, BallY + 100, BallRadius, BallRadius, 30)
% drawfilloval (BallX, BallY + 200, BallRadius, BallRadius, 30)
% drawfillbox (450, 500, 480, 470, 30)
drawfillbox (maxx div 2.1, maxy div 1.4, maxx div 1.9, maxy div 1.01, 66)
BallX := BallX - move
%Font.Draw ("CheckPoint", maxx div 2.5, maxy div 1.08, font1, black)
View.Update
if BallX = BallRadius
then
move := -move
elsif
BallX = maxx - BallRadius
then
move := +1
end if
%CONTROLS
Input.KeyDown (chars)
if chars (KEY_UP_ARROW) and BoxY2 <= maxy
then
BoxY1 := BoxY1 + 1
BoxY2 := BoxY2 + 1
elsif chars (KEY_DOWN_ARROW) and BoxY1 >= 0
then
BoxY1 := BoxY1 - 1
BoxY2 := BoxY2 - 1
elsif chars (KEY_RIGHT_ARROW) and BoxX1 <= maxx
then
BoxX1 := BoxX1 + 1
BoxX2 := BoxX2 + 1
elsif chars (KEY_LEFT_ARROW) and BoxX2 >= 0
then
BoxX2 := BoxX2 - 1
BoxX1 := BoxX1 - 1
end if
if chars (KEY_LEFT_ARROW) and chars (KEY_UP_ARROW) and BoxX2 >= 0 and BoxY2 <= maxy
then
delay (2)
BoxX2 := BoxX2 - 1
BoxX1 := BoxX1 - 1
BoxY1 := BoxY1 + 1
BoxY2 := BoxY2 + 1
end if
if chars (KEY_RIGHT_ARROW) and chars (KEY_UP_ARROW) and BoxY2 <= maxy and BoxX1 <= maxx
then
delay (2)
BoxX2 := BoxX2 + 1
BoxX1 := BoxX1 + 1
BoxY1 := BoxY1 + 1
BoxY2 := BoxY2 + 1
end if
if chars (KEY_RIGHT_ARROW) and chars (KEY_DOWN_ARROW) and BoxX1 <= maxx and BoxY1 >= 0
then
delay (2)
BoxX2 := BoxX2 + 1
BoxX1 := BoxX1 + 1
BoxY1 := BoxY1 - 1
BoxY2 := BoxY2 - 1
end if
if chars (KEY_LEFT_ARROW) and chars (KEY_DOWN_ARROW) and BoxY1 >= 0 and BoxX2 >= 0
then
delay (2)
BoxX2 := BoxX2 - 1
BoxX1 := BoxX1 - 1
BoxY1 := BoxY1 - 1
BoxY2 := BoxY2 - 1
end if
if BallX + BallRadius = BoxX2 and BallY + BallRadius = BoxY2 or BallY + BallRadius = BoxY1 or BallY + BallRadius = (BoxY1 + BoxY2) div 2
then
move := -1
end if
if BallX = (BoxX1 + BoxX2) div 2 and BallY = BoxY1 or BallY = BoxY2
then
Color := Rand.Int (30, 256)
end if
end loop
var BoxX1, BoxX2, BoxY1, BoxY2, BallX, BallY, BallRadius, move, BallRand, Color, font1, font2, font3 : int
var chars : array char of boolean
var chars1, chars2 : char
BoxX1 := maxx div 2
BoxX2 := maxx div 2.4
BoxY1 := maxy div 10
BoxY2 := maxy div 4.7
BallX := maxx - 12
BallY := maxy div 1.9
BallRadius := 12
move := 1
BallRand := Rand.Int (10, 1000)
Color := 30
font1 := Font.New ("Comic Sans:30:bold")
font2 := Font.New ("Comic Sans:10:bold")
font3 := Font.New ("Comic Sans :30:bold")
procedure GameMenu
loop
drawfillbox (0, 0, maxx, maxy, 103)
Font.Draw ("Welcome to Umang's Hardest Game", maxx div 7, maxy div 2, font1, red)
Font.Draw ("To Start Press, 'S' ", maxx div 2, maxy div 4, font2, red)
Font.Draw ("To View Controls, Press 'C' ", maxx div 2, maxy div 6, font2, red)
get chars1
if chars1 = ('S')
then
exit
elsif chars1 = ('C')
then
drawfillbox (0, 0, maxx, maxy, 103)
Font.Draw ("Controls", maxx div 2, maxy div 1.4, font3, red)
Font.Draw ("To Return, press 'R'", maxx div 1.5, maxy div 10, font2, red)
Font.Draw ("To Start Press, 'S' ", maxx div 2, maxy div 4, font2, red)
get chars2
if chars2 = ('S')
then
exit
elsif chars2 = ('R')
then
end if
end if
end loop
end GameMenu
GameMenu
loop
drawfillbox (0, 0, maxx, maxy, 149)
drawfilloval (BallX, BallY, BallRadius, BallRadius, 30)
drawfilloval (BallX, BallY + 50, BallRadius, BallRadius, 30)
drawfillbox (BoxX1, BoxY1, BoxX2, BoxY2, Color)
drawfilloval (BallX, BallY + 150, BallRadius, BallRadius, 30)
drawfilloval (BallX, BallY + 100, BallRadius, BallRadius, 30)
% drawfilloval (BallX, BallY + 200, BallRadius, BallRadius, 30)
% drawfillbox (450, 500, 480, 470, 30)
drawfillbox (maxx div 2.1, maxy div 1.4, maxx div 1.9, maxy div 1.01, 66)
BallX := BallX - move
%Font.Draw ("CheckPoint", maxx div 2.5, maxy div 1.08, font1, black)
View.Update
if BallX = BallRadius
then
move := -move
elsif
BallX = maxx - BallRadius
then
move := +1
end if
%CONTROLS
Input.KeyDown (chars)
if chars (KEY_UP_ARROW) and BoxY2 <= maxy
then
BoxY1 := BoxY1 + 1
BoxY2 := BoxY2 + 1
elsif chars (KEY_DOWN_ARROW) and BoxY1 >= 0
then
BoxY1 := BoxY1 - 1
BoxY2 := BoxY2 - 1
elsif chars (KEY_RIGHT_ARROW) and BoxX1 <= maxx
then
BoxX1 := BoxX1 + 1
BoxX2 := BoxX2 + 1
elsif chars (KEY_LEFT_ARROW) and BoxX2 >= 0
then
BoxX2 := BoxX2 - 1
BoxX1 := BoxX1 - 1
end if
if chars (KEY_LEFT_ARROW) and chars (KEY_UP_ARROW) and BoxX2 >= 0 and BoxY2 <= maxy
then
delay (2)
BoxX2 := BoxX2 - 1
BoxX1 := BoxX1 - 1
BoxY1 := BoxY1 + 1
BoxY2 := BoxY2 + 1
end if
if chars (KEY_RIGHT_ARROW) and chars (KEY_UP_ARROW) and BoxY2 <= maxy and BoxX1 <= maxx
then
delay (2)
BoxX2 := BoxX2 + 1
BoxX1 := BoxX1 + 1
BoxY1 := BoxY1 + 1
BoxY2 := BoxY2 + 1
end if
if chars (KEY_RIGHT_ARROW) and chars (KEY_DOWN_ARROW) and BoxX1 <= maxx and BoxY1 >= 0
then
delay (2)
BoxX2 := BoxX2 + 1
BoxX1 := BoxX1 + 1
BoxY1 := BoxY1 - 1
BoxY2 := BoxY2 - 1
end if
if chars (KEY_LEFT_ARROW) and chars (KEY_DOWN_ARROW) and BoxY1 >= 0 and BoxX2 >= 0
then
delay (2)
BoxX2 := BoxX2 - 1
BoxX1 := BoxX1 - 1
BoxY1 := BoxY1 - 1
BoxY2 := BoxY2 - 1
end if
if BallX + BallRadius = BoxX2 and BallY + BallRadius = BoxY2 or BallY + BallRadius = BoxY1 or BallY + BallRadius = (BoxY1 + BoxY2) div 2
then
move := -1
end if
if BallX = (BoxX1 + BoxX2) div 2 and BallY = BoxY1 or BallY = BoxY2
then
Color := Rand.Int (30, 256)
end if
end loop