概要 canvas画面外にあるものはレンダリングしない コストが高い画像を生成したならimg.src = canva.toDataURL()で突っ込んどく encahnt.jsやeasel.jsのコードを読んでいたら似たような仕組みがあったので参考にした。 (enchant.js、call,applyを多用していてキモかったんだけど、素のJSで継承を実装するとそんなもんだっけ…) 準備 canvasのプロトタイプを少し拡張している Color = Red : "rgb(255,0,0)" Blue : "rgb(0,0,255)" Green : "rgb(0,255,0)" White : "rgb(255,255,255)" Black : "rgb(0,0,0)" i : (r,g,b)-> "rgb(#{r},#{g},#{b})" Canvas = CanvasRendering