'Crazy Ball' bounces around the screen in an erratic manner. Make with AGK2. It is strictly 2-D. The sprites are created using drawn images on the computer screen.
// Project: Crazy Ball
// Created: 2017-11-23
// show all errors
SetErrorMode(2)
// set window properties
SetWindowTitle( "Crazy Ball" )
SetWindowSize( 1024, 768, 0 )
SetWindowAllowResize( 1 ) // allow the user to resize the window
// set display properties
SetVirtualResolution( 1024, 768 ) // doesn't have to match the window
SetOrientationAllowed( 1, 1, 1, 1 ) // allow both portrait and landscape on mobile devices
SetSyncRate( 0, 1) // 30fps instead of 60 to save battery
SetScissor( 0,0,0,0 ) // use the maximum available screen space, no black borders
UseNewDefaultFonts( 1 ) // since version 2.0.22 we can use nicer default fonts
`-----------------------------------------------
`make a ball sprite **************
color = MakeColor( 0, 127, 127 )
DrawEllipse( 50, 50, 50, 50, color, color, 1 )
GetImage( 1, 0, 0 , 100, 100 )
CreateSprite(1,1)
SetSpritePosition(1,500,500)
ClearScreen()
`********************
`make left border of screen-
color = MakeColor( 255, 255, 255 ) `(pure white)
DrawBox(0,0,10,768,color,color,color,color,1)
GetImage( 3, 0, 0 , 10, 768 )
CreateSprite(100,3)
SetSpritePosition(100,0,0)
setspritecolor(100,255,0,0,255) `initialize sprite color with red
`********************
`make right border of screen from same image-
CreateSprite(101,3)
SetSpritePosition(101,1014,0)
setspritecolor(101,255,0,0,255) `initialize sprite color with red
ClearScreen()
`**********************************
`make top border of screen-
DrawBox(0,0,1024,10,color,color,color,color,1)
GetImage( 4, 0, 0 , 1024, 10 )
CreateSprite(102,4)
SetSpritePosition(102,0,0)
setspritecolor(102,255,0,0,255) `initialize sprite color with red
`make bottom border of screen with same image-
CreateSprite(103,4)
SetSpritePosition(103,0,758)
setspritecolor(103,255,0,0,255) `initialize sprite color with red
`******************************************
` Start the crazy ball moving
sync()
loopstart:
SetVSync(1)
if GetRawMouseLeftPressed() = 1 then end
gosub movesprite
gosub if_color_a_line
sync()
goto loopstart
movesprite: `initiate first movement
ww:
sync()
if GetRawMouseLeftPressed() = 1 then sleep(10000)
if firstime = 0
mult# = 2 : clr_cnt_100 = 0:clr_cnt_101= 0:clr_cnt_102= 0: clr_cnt_103= 0
move_x = random2(1,10): move_y = random2(1,10)
if random2(1,2) = 2 then move_x = move_x - (move_x *2)
if random2(1,2) = 2 then move_y = move_y - (move_y *2)
firstime = 1
endif
`SetSpritePosition( iSpriteIndex, fX, fY)
SetSpritePosition (1, (getspritex(1)+ move_x * mult#), (getspritey(1)+ move_y * mult#))
`--------------------------color the lines yellow-------------------------------------
`---------------------------and determine 'bounce off' direction-----------------
if GetSpriteCollision( 1, 100 ) = 1 `left_line **********************
setspritecolor(100,255,255,0,255): clr_cnt_100 = 10
move_x = move_x - (move_x *2)
if random2(1,2) = 2 then move_y = move_y - (move_y * 2)
gosub if_reset_y_val
return
endif
if GetSpriteCollision( 1, 101 ) = 1 `right_line ***********************
setspritecolor(101,255,255,0,255): clr_cnt_101 = 10
move_x = move_x - (move_x *2)
if random2(1,2) = 2 then move_y = move_y - (move_y * 2)
gosub if_reset_y_val
return
endif
if GetSpriteCollision( 1, 102 ) = 1 `top_line **************************
setspritecolor(102,255,255,0,255): clr_cnt_102 = 10
move_y = move_y - (move_y *2)
if random2(1,2) = 2 then move_x = move_x - (move_x * 2)
gosub if_reset_x_val
return
endif
if GetSpriteCollision( 1, 103 ) = 1 `bottom_line *************************
setspritecolor(103,255,255,0,255): clr_cnt_103 = 10
move_y = move_y - (move_y *2)
if random2(1,2) = 2 then move_x = move_x - (move_x * 2)
gosub if_reset_x_val
return
endif
return
if_color_a_line:
if clr_cnt_100 > 0
dec clr_cnt_100
if clr_cnt_100 = 0 then setspritecolor(100,255,0,0,255) :return
endif
if clr_cnt_101 > 0
dec clr_cnt_101
if clr_cnt_101 = 0 then setspritecolor(101,255,0,0,255) :return
endif
if clr_cnt_102 > 0
dec clr_cnt_102
if clr_cnt_102 = 0 then setspritecolor(102,255,0,0,255) :return
endif
if clr_cnt_103 > 0
dec clr_cnt_103
if clr_cnt_103 = 0 then setspritecolor(103,255,0,0,255) :return
endif
return
`^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
if_reset_x_val:
if random2(1,2) = 2
moove_x = random2(1,10)
if move_x < 1 then move_x = - moove_x
if move_x > 0 then move_x = moove_x
endif
return
if_reset_y_val:
if random2(1,2) = 2
moove_y = random2(1,10)
if move_y < 1 then move_y = - moove_y
if move_y > 0 then move_y = moove_y
endif
return
App Game Kit is Fun