html5 canvas ImageData, Uint8ClampedArray。簡易アニメーション
ImageData {height: 100, width: 100, data: Uint8ClampedArray[40000]}
data: Uint8ClampedArray[40000]
[0 … 9999]
[10000 … 19999]
[20000 … 29999]
[30000 … 39999]
buffer: ArrayBuffer
byteLength: 40000
byteOffset: 0
length: 40000
__proto__: Uint8ClampedArray
height: 100
width: 100
__proto__: ImageData
data: Uint8ClampedArray[40000]
[0 … 9999]
[10000 … 19999]
[20000 … 29999]
[30000 … 39999]
buffer: ArrayBuffer
byteLength: 40000
byteOffset: 0
length: 40000
__proto__: Uint8ClampedArray
height: 100
width: 100
__proto__: ImageData
でこの配列40000は、rbgaの4データがずっと並んでる100×100なので4*100*100です。
というメモです。
何をしたいかというと
・canvasの一部だけ上書きすることで、負荷の少ないアニメーションにする。
・移動と回転
・残像を残す
・複数パーツ重ねて同時に変化
・ぱらぱらアニメ(複数画像)+移動
まずは、適当に点を動かして出来そうな雰囲気が出てきたら
ブロック崩しみたいなのを作ろうかと
先の話ですが
・ブロックデータ自体が、この配列になる。崩されると(当たった点からの距離で)透過され0になる。
検証:au IS03
100×100のオブジェクトを2つ、10fpsで描画し続けても問題ありませんでした。2万pixel更新(若干遅れますが)
4×4を2つ、10fpsで移動させてみます。putImageの描画前データを保管して、更新を繰り返します。32pixel x 2 = 64 pixel
当然速い。30fpsでも IS03でさくさくです。
描画の問題と別に、focusがcanvasにあたっていると色が反転というか選択状態になるので、focusを他に移す必要がある。これも負荷になるから
変なシューティングでも作ろうかな
- Prev openoffice で UML
- Next adb command debug for mac
- Prev MessagePack + PHP
- Next jquery display状態を確認するには?