0
캔버스에 공이 튀어 나오려고하는데 작동하지 않습니다. 공이 "벽"에 붙어서 왜 그런지 이해하지 못합니다. 누구든지이 문제를 어떻게 해결할 수 있는지 알고 있습니까?캔버스에 튀는 공
var can = document.querySelector("canvas");
var ctx = can.getContext("2d");
var canvasWidth = 500;
var canvasHeight = 400;
var radius = 30;
var pX = 60;
var pY = 50;
function draw() {
ctx.clearRect(0, 0, canvasWidth, canvasHeight);
ctx.beginPath();
ctx.fillStyle = "red";
ctx.arc(pX, pY, radius, 0, Math.PI * 2, false);
ctx.fill();
ctx.closePath();
}
function animate() {
var vX = 3;
var vY = 3;
if (pY >= canvasHeight - radius) {
vY = -vY;
}
if (pX >= canvasWidth - radius) {
vX = -vX;
}
pX += vX;
pY += vY;
draw();
requestAnimationFrame(animate);
}
animate();
오 덕분에 나는 것을 잊었지만 나는 여전히 같은 문제를 얻었다. 공이 구석에 달라 붙고 있습니다. – OignonDoux
vX 및 vY는 함수 animate의 로컬 변수이므로 이러한 현상이 발생합니다. 이 두 변수의 변수 선언과 할당을 함수 외부로 이동하기 만하면됩니다. – boxsome
도움을 주셔서 감사합니다. – OignonDoux