您最可能想要的是在画布上显示游戏虚拟世界的一部分。
• 首先,您必须确定此视图 rect 并以某种方式存储它。
最简单的:
var viewRect = { x : -3000, y:-3000, width: 6000, height:6000 } ;
• 然后,当你想画画时,我建议你让画布为你做数学运算并使用变换。
所以你猜到了'canvasWidth'和'canvasHeight'初始化,绘图代码看起来像:
context.clearRect(0,0,canvasWidth, canvasHeight);
context.save();
var ratio = canvasWidth / viewRect.width;
context.scale(ratio, ratio);
context.translate(-viewRect.x, -viewRect.y);
//
// do your drawings here in world coordinates.
context.fillStyle='black';
context.fillRect(-2000, -800, 300, 300);
//
context.restore();
请注意,您必须保存()和恢复()上下文以在每次渲染时保持正确。
(您也可能不使用保存/恢复并使用'setTransform(1, 0, 0, 1, 0, 0);'来重置转换。)
最简单的 jsbin 在这里:
http://jsbin.com/hudaqoqavu/1/