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