Ok, I've gotten the collision code written for the blocks and and paddle. The new problem is that the ball gets stuck bouncing within the paddle. Any reason why this occurr?
Code:
void checkCollision(void)
{
int x,y,i;
// check ball and block collision
for(x =0; x < MAX_ROW; x++)
{
for(y = 0; y < MAX_COL; y++)
{
if (ball.x > blocks[x][y].x &&
ball.x <= blocks[x][y].x+blocks[x][y].width &&
ball.y > blocks[x][y].y &&
ball.y <= blocks[x][y].y+blocks[x][y].height)
{
if(blocks[x][y].color > 0)
{
if(ball.x+ball.width >= blocks[x][y].x+blocks[x][y].width)
ball.dx = -ball.dx;
if(ball.x+ball.width <= blocks[x][y].x+blocks[x][y].width)
ball.dx = ball.dx;
ball.dy = -ball.dy;
paddle.score += blocks[x][y].color*10;
blocks[x][y].color = 0;
numOfBlocks--;
playSound(BALLHITBLOCK);
}
}
}
}
// check ball and paddle collision
if (ball.x > paddle.x &&
ball.x <= paddle.x+paddle.width &&
ball.y > paddle.y &&
ball.y <= paddle.y+paddle.height)
{
if(ball.x >= paddle.x+paddle.width)
ball.dx = -ball.dx;
if(ball.x <= paddle.x+paddle.width)
ball.dx = ball.dx;
ball.dy = -ball.dy;
playSound(BALLHITPADDLE);
}
}