Ahh, I think I've got this one down now :o) Everything seems to working fine.
Here is my code:
Thanks Again guys! :o)
Here is my code:
Graphics 800,600 SetBuffer BackBuffer() Global SCREEN_WIDTH = 800 Global SCREEN_HEIGHT = 600 Global AREA_X = 0;(SCREEN_WIDTH/2)/4;20;150 Global AREA_Y = 30 Global AREA_WIDTH = 11 Global AREA_HEIGHT = 8 Global BRICK_WIDTH = 50 Global BRICK_HEIGHT= 15 Global BALL_WIDTH = 10 Global BALL_HEIGHT = 10 Global ball_x = AREA_X+10 Global ball_y = 10 Global ball_x_dir = 1 Global ball_y_dir = 1 Global ball_x_speed = 3 Global ball_y_speed = 3 Global BOUNDARY_X = AREA_X Global BOUNDARY_Y = 0 Global BOUNDARY_WIDTH = (BRICK_WIDTH*AREA_WIDTH)+(BRICK_WIDTH*2) Global BOUNDARY_HEIGHT = 600 Global USER_WIDTH = 100 Global USER_HEIGHT = 15 Global user_x = (BOUNDARY_X+BOUNDARY_WIDTH)/2 Global user_y = 550 Global user_score = 0 Global TEXT_X = (BOUNDARY_X+BOUNDARY_WIDTH)+2 Dim Bricks(AREA_WIDTH-1,AREA_HEIGHT-1) For y=0 To AREA_HEIGHT-1 For x=0 To AREA_WIDTH-1 Bricks(x,y)=1 Next Next read_level() While Not KeyHit(1) Cls Color 0,0,65 Rect (BOUNDARY_X+2),(BOUNDARY_Y+2),(BOUNDARY_WIDTH-4),(BOUNDARY_HEIGHT-4),1 update_user() update_ball() draw_level() Color 0,0,Rand(200,255) Rect user_x,user_y,USER_WIDTH,USER_HEIGHT,1 Color 255,255,255 Rect user_x,user_y,USER_WIDTH,USER_HEIGHT,0 Oval ball_x,ball_y,BALL_WIDTH,BALL_HEIGHT,1 Rect BOUNDARY_X,BOUNDARY_Y,BOUNDARY_WIDTH,BOUNDARY_HEIGHT,0 Color 255,255,255 Rect (BOUNDARY_X+2),(BOUNDARY_Y+2),(BOUNDARY_WIDTH-4),(BOUNDARY_HEIGHT-4),0 Rect TEXT_X-2,0,SCREEN_WIDTH-(TEXT_X-2),SCREEN_HEIGHT,0 Text TEXT_X,5,"BALL X:"+ball_x Text TEXT_X,35,"BALL Y:"+ball_y Text TEXT_X,65,"BALL_Y_DIR:"+ball_y_dir Text TEXT_X,105,"SCORE:"+user_score Flip Wend End Function update_ball() If ball_x_dir = 1 Then ball_x = ball_x+ball_x_speed If ball_x_dir = 0 Then ball_x = ball_x-ball_x_speed If ball_y_dir = 1 Then ball_y = ball_y+ball_y_speed If ball_y_dir = 0 Then ball_y = ball_y-ball_y_speed If ball_x>BOUNDARY_X+(BOUNDARY_WIDTH-BALL_WIDTH) Then ball_x_dir = 1-ball_x_dir If ball_x<BOUNDARY_X Then ball_x_dir = 1-ball_x_dir If ball_y>(BOUNDARY_HEIGHT-BALL_HEIGHT) Then ball_y_dir = 1-ball_y_dir If ball_y<BOUNDARY_Y Then ball_y_dir = 1-ball_y_dir For y = 0 To AREA_HEIGHT-1 For x = 0 To AREA_WIDTH-1 If Bricks(x,y)<>0 X_CHECK = (AREA_X+BRICK_WIDTH)+(x*BRICK_WIDTH) WIDTH_CHECK = X_CHECK+BRICK_WIDTH Y_CHECK = AREA_Y+(y*BRICK_HEIGHT) HEIGHT_CHECK = Y_CHECK+BRICK_HEIGHT ball_x = ball_x+ball_x_speed If RectsOverlap(ball_x,ball_y,BALL_WIDTH,BALL_HEIGHT,X_CHECK,Y_CHECK,BRICK_WIDTH,BRICK_HEIGHT) Then ball_x_dir = 1-ball_x_dir Bricks(x,y) = 0 user_score = user_score+14 EndIf ball_x = ball_x-ball_x_speed If RectsOverlap(ball_x,ball_y,BALL_WIDTH,BALL_HEIGHT,X_CHECK,Y_CHECK,BRICK_WIDTH,BRICK_HEIGHT) Then ball_x_dir = 1-ball_x_dir Bricks(x,y) = 0 user_score = user_score+14 EndIf ball_y = ball_y+ball_y_speed If RectsOverlap(ball_x,ball_y,BALL_WIDTH,BALL_HEIGHT,X_CHECK,Y_CHECK,BRICK_WIDTH,BRICK_HEIGHT) Then ball_y_dir = 1-ball_y_dir Bricks(x,y) = 0 user_score = user_score+14 EndIf ball_y = ball_y-ball_y_speed If RectsOverlap(ball_x,ball_y,BALL_WIDTH,BALL_HEIGHT,X_CHECK,Y_CHECK,BRICK_WIDTH,BRICK_HEIGHT) Then ball_y_dir = 1-ball_y_dir Bricks(x,y) = 0 user_score = user_score+14 EndIf EndIf Next Next End Function Function update_user() user_x = user_x+MouseXSpeed() If user_x>BOUNDARY_X+(BOUNDARY_WIDTH-USER_WIDTH) Then user_x = BOUNDARY_X+(BOUNDARY_WIDTH-USER_WIDTH) If user_x<BOUNDARY_X Then user_x = BOUNDARY_X ball_x = ball_x+ball_x_speed If RectsOverlap(ball_x,ball_y,BALL_WIDTH,BALL_HEIGHT,user_x,user_y,USER_WIDTH,USER_HEIGHT) Then ball_x_dir = 1-ball_x_dir EndIf ball_x = ball_x-ball_x_speed If RectsOverlap(ball_x,ball_y,BALL_WIDTH,BALL_HEIGHT,user_x,user_y,USER_WIDTH,USER_HEIGHT) Then ball_x_dir = 1-ball_x_dir EndIf ball_y = ball_y+ball_y_speed If RectsOverlap(ball_x,ball_y,BALL_WIDTH,BALL_HEIGHT,user_x,user_y,USER_WIDTH,USER_HEIGHT) Then ball_y_dir = 1-ball_y_dir EndIf ball_y = ball_y-ball_y_speed If RectsOverlap(ball_x,ball_y,BALL_WIDTH,BALL_HEIGHT,user_x,user_y,USER_WIDTH,USER_HEIGHT) Then ball_y_dir = 1-ball_y_dir EndIf End Function Function read_level() Restore level1 For y=0 To AREA_HEIGHT-1 For x=0 To AREA_WIDTH-1 Read Bricks(x,y) Next Next End Function Function draw_level() For y = 0 To AREA_HEIGHT-1 For x = 0 To AREA_WIDTH-1 If Bricks(x,y)=1 Then Color 55,55,Rand(0,135) Rect (AREA_X+BRICK_WIDTH)+x*BRICK_WIDTH,AREA_Y+y*BRICK_HEIGHT,BRICK_WIDTH,BRICK_HEIGHT,1 Color 255,255,255 Rect (AREA_X+BRICK_WIDTH)+x*BRICK_WIDTH,AREA_Y+y*BRICK_HEIGHT,BRICK_WIDTH,BRICK_HEIGHT,0 EndIf Next Next End Function .level1 Data 1,1,1,1,1,1,1,1,1,1,1 Data 1,1,1,1,1,1,1,1,1,1,1 Data 1,1,1,1,1,1,1,1,1,1,1 Data 1,1,1,1,1,1,1,1,1,1,1 Data 1,1,1,1,1,1,1,1,1,1,1 Data 1,1,1,1,1,1,1,1,1,1,1 Data 1,1,1,1,1,1,1,1,1,1,1 Data 1,1,1,1,1,1,1,1,1,1,1
Thanks Again guys! :o)