Thursday, 30 May 2013

Second Day
Yesterday, I had created the balls moving and the checkpoint base. I hope to create the balls in an array so they will move in random directions  creating a greater level of difficulty for the user. I also need to create the game menu, which I think I can achieve today and also create the collisions between the balls and the checkpoint. My Code:
View.Set ("graphics:1000;500,buttonbar,offscreenonly")
var BoxX1, BoxX2, BoxY1, BoxY2, BallX, BallY, BallRadius, move, BallRand, Color, font1 : int
var chars : array char of boolean
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 ("times new roman:30:bold")
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 3, maxy div 1.101, maxx div 1.5, maxy, 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