I found the answer to your problem... or so i think, but it must be this...
check the following...
if ball_y < 1 then bally_dir = 1
if ball_y > 464 then lives = lives-1:throw_ball = 1: Delete Sprite 81
if ball_x < 1 then ballx_dir = 1
if ball_y > 624 then ballx_dir = 0
Notice that you set the borders for where the ball should collide... well, if you see a bit better, you'll see that the last "if" statement checks for "ball_y" when it should do for "ball_x".
Also here...
`Set Ball Direction
if ballx_dir = 0 then DEC ball_x,ball_speed
if ballx_dir = 1 then INC ball_x,ball_speed
if bally_dir = 0 then DEC ball_y,ball_speed
if ballx_dir = 1 then INC ball_y,ball_speed
Same here but viceversa, you are checking for "ballx_dir" where you should check for "bally_dir", same place, on the last "if" statement.
So basically, just change it to like this
` This code was downloaded from The Game Creators
` It is reproduced here with full permission
` http://www.thegamecreators.com
Set Display Mode 640,480,32
`------
`Load Bricks
`------
load image "paddle.png",1
load image "block1.bmp",2
load image "block2.bmp",3
load image "block3.bmp",4
load image "block4.bmp",5
load image "ball.png",6
`------
`Setup Sprites
`------
Sprite 1,10,0,2
Sprite 2,90,0,2
Sprite 3,170,0,2
Sprite 4,250,0,2
Sprite 5,330,0,2
Sprite 6,410,0,2
Sprite 7,490,0,2
Sprite 8,570,0,2
Sprite 9,10,40,3
Sprite 10,90,40,3
Sprite 11,170,40,3
Sprite 12,250,40,3
Sprite 13,330,40,3
Sprite 14,410,40,3
Sprite 15,490,40,3
Sprite 16,570,40,3
Sprite 17,10,80,4
Sprite 18,90,80,4
Sprite 19,170,80,4
Sprite 20,250,80,4
Sprite 21,330,80,4
Sprite 22,410,80,4
Sprite 23,490,80,4
Sprite 24,570,80,4
Sprite 25,10,120,5
Sprite 26,90,120,5
Sprite 27,170,120,5
Sprite 28,250,120,5
Sprite 29,330,120,5
Sprite 30,410,120,5
Sprite 31,490,120,5
Sprite 32,570,120,5
`------
`Setup Variables
`------
player_x=320
player_y=460
ball_x=320
ball_y=240
ballx_dir=0
bally_dir=0
pscore=0
lives=3
`------
`Main Loop
`------
do
`Paddle Movement
if leftkey() then DEC player_x,8
if rightkey() then INC player_x,8
`Paddle Collision
if player_x < 1 then player_x = 1
if player_x > 540 then player_x = 540
`Wall Collision
if ball_y < 1 then bally_dir = 1
if ball_y > 464 then lives = lives-1:throw_ball = 1: Delete Sprite 81
if ball_x < 1 then ballx_dir = 1
if ball_x > 624 then ballx_dir = 0
`Set Ball Direction
if ballx_dir = 0 then DEC ball_x,ball_speed
if ballx_dir = 1 then INC ball_x,ball_speed
if bally_dir = 0 then DEC ball_y,ball_speed
if bally_dir = 1 then INC ball_y,ball_speed
Sprite 80,player_x,player_y,1
Sprite 81,ball_x,ball_y,6
`Paddle Collision With Ball
If sprite hit(80,81) = 1 then bally_dir = 0
`Block Collision
For block_hit = 1 to 32
If sprite hit(81,block_hit) = 1 then delete sprite block_hit:pscore=pscore+1:bally_dir=1
Next block_hit
`If Ball Exits Screen, Reset
If throwball = 1
Sleep 1000
ball_x = 320
ball_y = 240
ballx_dir = RND(1)
bally_dir = RND(1)
throw_ball = 0
Endif
sync
loop
Further on my stuff at...
