나는 스프라이트가있는 플레이어 클래스가 있으며 마우스 포인터를 향하게하고 싶습니다. 나는 스프라이트의 회전이해야 무엇을 작동하려면이 옵션을 사용하고캔버스 요소에 스프라이트 회전하기
: 내 Player
클래스의 내 그리기 방법 다음
this.rotation = -(Math.atan2(this.x - mouseState.x, this.y - mouseState.y) * 180/Math.PI);
와 나는이 일을 해요 :
Player.prototype.draw = function() {
window.ctx.save();
window.ctx.translate(this.x + this.sprite.width/2, this.y + this.sprite/height/2);
window.ctx.rotate(this.rotation);
window.ctx.drawImage(this.sprite, this.x, this.y);
window.ctx.restore();
}
하지만 내가 원하는 것은 아닙니다. 스프라이트는 캔버스의 왼쪽 상단 주위에있는 원에서 거칠게 움직이는 것처럼 보입니다 (x:0, y:0
).
스프라이트의 중심을 마우스 커서를 기준으로 원점으로 사용하려면 어떻게해야합니까?
스프라이트는 각도로 변환하지 않아서 너무 거칠게 회전하지 않지만 캔버스의 왼쪽 상단 주위에 큰 원으로 회전합니다. –
먼저 'rotate'하고 * 다음에'translate '해야합니다. –