var ballRadius = 10;
ctx.arc(x, y, ballRadius, 0, Math.PI*2);
if(y + dy < 0) {
dy = -dy; //상단 모서리
}
if(y + dy > canvas.height){
dy = -dy; //하단 모서리
}
공의 위치에서 y값이 캔버스의 높이보다 큰 경우(좌상단으로부터 y값을 측정) 상단모서리에서의 y값은 0, 하단모서리에서의 y값은 480이기 때문에 y축의 방향을 바꾼다.
위의 두가지 코드를 합치면 아래 코드와 같다.
if(y + dy < 0 || y + dy > canvas.height ) {
dy = -dy; // 상하
if(x + dx > canvas.width || x + dx < 0) {
dx = -dx; //좌우
}
if(x + dx > canvas.width-ballRadius || x + dx < ballRadius) {
dx = -dx;
}
if(y + dy > canvas.height-ballRadius || y + dy < ballRadius) {
dy = -dy;
}