저는 두 개의 직사각형이 두 가지 방향으로 움직이는 간단한 캔버스 애니메이션을 가지고 있습니다. 그러나 이것이 더 단순화 될 수 있다고 생각합니다. 예를 들어간단하게 캔버스 애니메이션
http://jsfiddle.net/tmyie/R5wx8/6/
var canvas = document.getElementById('canvas'),
c = canvas.getContext('2d'),
x = 10,
y = 15,
a = 20,
b = 50;
function move() {
c.clearRect(0, 0, 500, 300);
c.fillRect(0, y, 5, 5),
c.fillRect(b, 5, 15, 15);
x++;
y++;
b++
if (y > canvas.height || x > canvas.width) {
y = 0;
x = 0;
}
}
setInterval(move, 100);
, 어떻게 내가 다른 세 가지 모양을 만들 싶어하면 어떻게됩니까? 현재 각 좌표에 대해 더 많은 변수를 만들어야합니다.
x++;
y++;
b++
각 사각형을 자체 객체로 변환 할 수있는 방법이 있습니까?
당신은 사용을 고려해야합니다 [requestAnimationFrame()] (https://developer.mozilla.org/en/docs/Web/API/window.requestAnimationFrame) 대신하여 setInterval의() 애니메이션 때. 성능 향상을 위해 브라우저 탭이 활성화되어 있지 않으면 루프가 중지됩니다. 연속 루프를 만들려면 setInterval 행을'window.requestAnimationFrame (move); '으로 바꾸고 move 함수 시작 부분에 같은 줄을 다시 추가하십시오. – Strille