방금 HTML5 캔버스로 게임을 시작 했으므로 몇 가지 게임을 만들려고했습니다. 그러나 최대한 빨리 마우스가 좌표를 렌더링 시작, 그것은 거의 중단 연마 : 38 개 라인과 텍스트, 아니, 그것을 처리 할 수 있어야 렌더링 내가 한 모든HTML5 캔버스를 매우 느리게 다시 그려야합니다.
http://jsfiddle.net/mnpenner/zHpgV/
입니까?
내가 잘못 했나요? 나는 30 FPS에서 렌더링 할 수 있기를 원합니다. 그러나 이와 같은 것을 위해 나는 1000 초를 그릴 수 있다고 기대합니다.
아니면 그냥 잘못된 도구를 사용하고 있습니까? 작업을 위해 WebGL을 사용하고 있습니까? 왜 다른 하나보다 훨씬 느린가?
String.prototype.format = function() {
var args = arguments;
return this.replace(/\{(\d+)\}/g, function(m, n) {
return args[n];
});
};
var $canvas = $('#canvas');
var c = $canvas[0].getContext('2d');
var scale = 20;
var xMult = $canvas.width()/scale;
var yMult = $canvas.height()/scale;
var mouseX = 0;
var mouseY = 0;
c.scale(xMult, yMult);
c.lineWidth = 1/scale;
c.font = '1pt Calibri';
function render() {
c.fillStyle = '#dcb25c';
c.fillRect(0, 0, scale, scale);
c.fillStyle = '#544423';
c.lineCap = 'square';
for (var i = 0; i <= 19; ++i) {
var j = 0.5 + i;
c.moveTo(j, 0.5);
c.lineTo(j, 19.5);
c.stroke();
c.moveTo(0.5, j);
c.lineTo(19.5, j);
c.stroke();
}
c.fillStyle = '#ffffff';
c.fillText('{0}, {1}'.format(mouseX, mouseY), 0.5, 1.5);
}
render();
$canvas.mousemove(function(e) {
mouseX = e.clientX;
mouseY = e.clientY;
render();
});
<canvas id="canvas" width="570" height="570"></canvas>
나는 경로가 그 일을 몰랐어요! 나는'path' 객체를 갖는 것이 더 직관적이었을 것이라고 생각한다. 왜 그렇게 느린 지 지금 생각합니다. 고마워요! – mpen
HTML5 Canvas 스펙에 경로 객체가 있습니다. 앞으로 경로를 만들고'drawPath'를 호출 할 수 있습니다. 그러나 아직 어떤 브라우저도 구현되지 않았으므로 몇 달이 지나야 사용할 수 있습니다. 언젠가 구입하십시오! –