私はちょうど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'を呼び出すことができます。しかし、ブラウザはまだそれを実装していないし、あなたがそれを利用できるようになるまで数ヶ月かかるかもしれない。いつか買う! –