Back
A005 copyPixelsを用いたエフェクト高速描画

ゲーム内のグラフィック処理では比較的描画負荷の低いBitmapクラスの割合を徐々に増やしていたんですが、中でもダントツに負荷が低く高速に描画出来ると噂のcopyPixelsメソッドをマスターするために作ったデモ。
プレイ画面サイズを今までより大きくして、60fpsで全画面エフェクトと背景の高速スクロールを同時に行っても問題にならない感動的な軽さ。すごい!何故今までやらなかった…。

-TIPS-
猫はおまけなので主な描画ポイントは背景とエフェクト。

背景スクロールは元画像を並べて繋げて一枚のBitmapDataにしてしまい、そこから毎フレーム基準座標を移動しつつ表示用のBitmapDataにcopyPixels、これでスクロールして見えてます。切り抜く窓の方を動かす感じ。

ムービーエフェクトは一度動画データをMovieClipに格納して全フレームをBitmapDataにdraw、Vector配列に納めて連続描画しています。動画の入ったMCをそのまま扱う場合に比べて異様にCPU負荷が軽くなるけど、その分メモリを喰うので注意。


_imgBmpData.copyPixels(
 //第一引数がコピー"元"画像のBitmapData
_sourceBmpData,
 //第二引数はコピー"元"の基準点。左上の座標と切り抜くサイズが必要なのでRectangle型で指定
new Rectangle(x, y, width, height),
 //第三引数はコピー"先"の基準点。左上の座標のみなのでPoint型で指定
new Point(x,y)
);

素材:BGM:MusMus / GRAPHICS:Beeple fanatail.com Nekonoki