   Block Breaker , ANGLE calcution HELP!
  i try to make brick breaker game.i got 1 problem that the ball doesn't bounce correctlyi thought for 2 days and i don't get the answer that i can understand from interneti use this fomulaball.x = sin(angle)*speed;ball.y = cos(angle)*speed;angle is in radian value;and whatever the ball hits,the angle will mutiply by minuswhich i think it gonna work but when i hit the wall not the brickthe ball doesn't bounce and move like parallel.can someone tell me how to calculate the opposite site properly?Please. this is my assignment that i have to finish now   
  you don't negate the angle, but you negate either x or y depending on what wall you hit.if(hit left or right wall) ball.x = -ball.x;if(hit up or down wall) ball.y = -ball.y;angle = atan2(x, y);;  Of course, if you keep ball.x and ball.y, there's no point in keeping an angle...   ;Quote:Original post by oliiiyou don't negate the angle, but you negate either x or y depending on what wall you hit.if(hit left or right wall) ball.x = -ball.x;if(hit up or down wall) ball.y = -ball.y;angle = atan2(x, y);thanks for your help, i gonna try itbut i just want to learn.i don't understand about what you wrote "angle = atan2(x, y);"atan2??what is it? arctan? 2??how can i use it?   ;  Try googling "atan2"...it's quite helpful.   ;Quote:Original post by GregMichaelTry googling "atan2"...it's quite helpful.well, atan2 will make me get the opposite angle it the reverse value of tan.however, i try to apply for the program, it won't workangle = atan2(ball.y,ball.x);  // atan2 value is already radianball.x += sinf(angle)* speedX;ball.y += cosf(angle)* speedY;when the wall hit up or down -> speedY *(-1)when the wall hit left or right -> speedX *(-1)it doesn't workwhen the ball hit block/brick , the ball move backward andnot collide to the bar....confusedi want to make this game work by some physic or mathbecause i can apply for another game tooplease help.   ;  you don't have to bother with angles. just negate the x or the y when you hit a wall or a side of a brick. The angle can be useful at the initial start to initialise the x and y, but after, it's overkill.   ;Quote:Original post by oliiiyou don't have to bother with angles. just negate the x or the y when you hit a wall or a side of a brick. The angle can be useful at the initial start to initialise the x and y, but after, it's overkill.but it the ball hit the edge of the brick......how can i do?i understand your point and i agree with youhowever, the next step that i want to try is billard gameso i want to know how to get the reflect angle   ;  When you do billiards, you'll also be better off not using angles. If you have an incoming vector and a normal vector and you want to compute a reflected vector, you can do that with simple vector arithmetic. The formula is something like this:reflected = incoming - 2*dot_product(incoming, normal)*normal;  I don't know your maths level, but vector maths are pretty easy. for the very basics, see here.Vector, triginometry, arithmetics, algebra, calculus, geometry, cartesian and polar coordinates, it's pretty much A-level maths, and that's 90% of collision detection and physics (the simple kind!) sorted. Vectors, matrices and geometrical properties being used extensively.   