Thursday, 30 May 2013

Today I have started completed the Game Menu, I still need to fix the color scheme and understand how to make the balls act in an array. I will work on this further at home so the true game will come into effect.
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

No comments:

Post a Comment