我刚开始玩 HTML5 画布,我希望能用它制作一些游戏。然而,当我开始向它渲染鼠标坐标时,它几乎停止了:
http://jsfiddle.net/mnpenner/zHpgV/
我所做的只是渲染 38 行和一些文本,它应该能够处理,不是吗?
难道我做错了什么?我希望能够以至少 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>