const canvas = document.getElementById("myCanvas");
const ctx = canvas.getContext("2d");
const ballRadius = 10;
var ballX = Array();
ballX.speed = 2.4;
ballX.vel = ballX.speed;
ballX.rad = ballRadius;
ballX.limit = canvas.width;
ballX.pos = 20;
var ballY = Array();
ballY.speed = 1.7;
ballY.vel = ballY.speed;
ballY.rad = ballRadius;
ballY.limit = canvas.height;
ballY.pos = 20;
function CheckWalls(ball) {
if(ball.pos<0) {
ball.pos = -ball.pos;
ball.vel = ball.speed;
}
if(ball.pos>ball.limit) {
ball.pos = (2*ball.limit)-ball.pos;
ball.vel = -ball.speed;
}
if(ball.pos<ball.rad) {
ball.erad = (ball.pos+ball.rad)/2;
ball.epos = ball.erad;
} else if((ball.limit-ball.pos)<ball.rad) {
ball.erad = (ball.limit-ball.pos+ball.rad)/2;
ball.epos = ball.limit-ball.erad;
} else {
ball.erad = ball.rad;
ball.epos = ball.pos;
};
return ball;
}
function draw() {
// Draw the puck
ctx.beginPath();
ctx.clearRect(0, 0, canvas.width, canvas.height);
CheckWalls(ballX);
CheckWalls(ballY);
ctx.ellipse(ballX.epos, ballY.epos, ballX.erad, ballY.erad, 0, 0, Math.PI * 2);
ctx.fillStyle = "red";
ctx.fill();
ctx.closePath();
ballX.pos = ballX.pos + ballX.vel;
ballY.pos = ballY.pos + ballY.vel;
}
setInterval(draw, 12);