描画を計ろう
■レンダリングにかかる時間を計測して、パフォーマンスをチューニング
/** * @mxmlc -default-size 640 480 -incremental=true */ package { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.utils.*; public class Main extends Sprite { [Embed(source='sofi.jpg')] private var imageClass:Class; private var bData:Bitmap = new imageClass(); private var g:Glib01 = new Glib01( 640, 480 ); private var po:Array; private var uv:Array; //------------------------------------- // public function Main(){ addChild( new Bitmap( g.GetBitmapData() ) ); po = new Array( 4 ); uv = new Array( 4 ); po[ 0 ] = new Point( 100, 50 ); po[ 1 ] = new Point( 350, 80 ); po[ 2 ] = new Point( 400, 300 ); po[ 3 ] = new Point( 50, 350 ); uv[ 0 ] = new Point( 0, 0 ); uv[ 1 ] = new Point( 256, 0 ); uv[ 2 ] = new Point( 256, 256 ); uv[ 3 ] = new Point( 0, 256 ); var timer:Timer=new Timer(32,0); timer.addEventListener(TimerEvent.TIMER,onTick); timer.start(); } //------------------------------------- // private function onTick( evt:TimerEvent ):void { var ti:int; ti = getTimer(); g.Cls(0x8080ff); g.DrawBitmapPolygon3( bData.bitmapData, uv[ 0 ], uv[ 1 ], uv[ 2 ], po[ 0 ], po[ 1 ], po[ 2 ] ); g.DrawBitmapPolygon3( bData.bitmapData, uv[ 0 ], uv[ 2 ], uv[ 3 ], po[ 0 ], po[ 2 ], po[ 3 ] ); g.Print( 200, 50, "DrawTime="+(getTimer()-ti)); } } }
ゲームを作っていると、最後に高速化が必要になってきます。時間の計測できれば大体はパフォーマンスチェックできるようになるので「getTimer();」を使って数値を計測。
FLASHでこれ以上細かい精度の数値は取得できないので、大雑把なプロファイルにしかなりませんが・・・・
■画面解像度の指定。
ソースの頭に、この3行を足すと、画面解像度を指定できます。今回は640X480で
/** * @mxmlc -default-size 640 480 -incremental=true */