111
棰勮妯″紡: 鏅 | 鍒楄〃

TurboM-鏀硅壇杩囩殑娓叉煋

 鍙戝竷涓涓渶杩戞敼鑹繃鐨凾urboM鐨凞EMO锛5000涓厓绱狅紝24FPS

鐐瑰嚮鍏ㄥ睆

鍒嗙被:Demo | 鍥哄畾閾炬帴 | 璇勮: 1 | 寮曠敤: 0 | 鏌ョ湅娆℃暟: 409

 鍏堜笂浠g爜锛

 

Java Code澶嶅埗鍐呭鍒板壀璐存澘
  1. package testClass  
  2. {  
  3.     import flash.utils.Dictionary;  
  4.     import flash.utils.getTimer;  
  5.   
  6.     /** 
  7.      * 娴嬭瘯閬嶅巻Array 銆 Object 銆 Dictionary 閲岄潰鐨勬暟鎹殑鏁堢巼 
  8.      * @author jing 
  9.      * @site www.annjing.cn 
  10.      */   
  11.     public class TestArrayAndObject  
  12.     {  
  13.         private var _array:Array = [];  
  14.         private var _object:Object = {};  
  15.         private var _dic:Dictionary = new Dictionary();  
  16.         private var _vector:Vector.<Object> = new Vector.<Object>();  
  17.           
  18.         public function TestArrayAndObject()  
  19.         {  
  20.             init();  
  21.             run();  
  22.         }  
  23.           
  24.         private function init():void  
  25.         {  
  26.             var object:Object = null;  
  27.             for(var i:int = 0; i < 10000; i++)  
  28.             {  
  29.                 object = new Object();  
  30.                 _array.push(object);  
  31.                 _object[i] = object;  
  32.                 _dic[i] = object;  
  33.                 _vector[i] = object;  
  34.             }  
  35.         }  
  36.           
  37.         private function run():void  
  38.         {  
  39.             var object:Object = {};  
  40.             var i:int = 0;  
  41.             var count:int = 0;  
  42.             var cost:int = 0;  
  43.             var timer:int = 0;  
  44.             var length:int = 0;  
  45.             var k:String = null;  
  46.             length = _array.length;  
  47.               
  48.             timer = getTimer();  
  49.             for(i = 0; i < length; i++)  
  50.             {  
  51.                 (_vector[i] as Object).x = 1;  
  52.             }  
  53.             cost = getTimer() - timer;  
  54.               
  55.             trace("閬嶅巻Vector娑堣楋細",cost);  
  56.               
  57.             timer = getTimer();  
  58.             for(i = 0; i < length; i++)  
  59.             {  
  60.                 (_array[i] as Object).x = 1;  
  61.             }  
  62.             cost = getTimer() - timer;  
  63.               
  64.             trace("姝e簭閬嶅巻鏁扮粍娑堣楋細",cost);  
  65.               
  66.             length = _array.length;  
  67.             count = 0;  
  68.               
  69.             timer = getTimer();  
  70.             while(--length > -1)  
  71.             {  
  72.                 _array[length].x = 1;  
  73.             }  
  74.             cost = getTimer() - timer;  
  75.               
  76.             trace("鍊掑簭閬嶅巻鏁扮粍娑堣楋細",cost);  
  77.               
  78.             timer = getTimer();  
  79.             for(k in _object)  
  80.             {  
  81.                 _object[k].x = 1;  
  82.             }  
  83.             cost = getTimer() - timer;  
  84.               
  85.             trace("閬嶅巻瀵硅薄娑堣楋細",cost);  
  86.               
  87.             timer = getTimer();  
  88.             for(k in _dic)  
  89.             {  
  90.                 _dic[k].x = 1;  
  91.             }  
  92.             cost = getTimer() - timer;  
  93.               
  94.             trace("閬嶅巻瀛楀吀娑堣楋細",cost);  
  95.         }  
  96.     }  
  97. }  

----------------------------杈撳嚭鍐呭-------------------------------

鏌ョ湅鏇村...

鍒嗙被:ActionScript3 | 鍥哄畾閾炬帴 | 璇勮: 0 | 寮曠敤: 0 | 鏌ョ湅娆℃暟: 713

 鍏堜笂DEMO锛

 

鏍稿績鎬濊矾锛

鏌ョ湅鏇村...

鍒嗙被:Demo | 鍥哄畾閾炬帴 | 璇勮: 1 | 寮曠敤: 0 | 鏌ョ湅娆℃暟: 1046

 鍘诲勾鍙備笌浜嗙炕璇戝伐浣滅殑涔︾粓浜庤鍑虹増浜嗭紝澶у鏈夊叴瓒g殑鍙互涔版潵瀛︿範涓媁EBGAME鐨勫紑鍙銆傜鍏珷鐨勫垵绋挎槸鎴戝啓鐨勩

 

鍩烘湰淇℃伅

  • 浣滆咃細 (缇)Jobe Makar   
  • 璇戣咃細 鏉庨懌 椹垳
  • 涓涗功鍚嶏細 鍥剧伒绋嬪簭璁捐涓涗功
  • 鍑虹増绀撅細浜烘皯閭數鍑虹増绀
  • ISBN锛9787115242716
  • 涓婃灦鏃堕棿锛2010-12-16
  • 鍑虹増鏃ユ湡锛2011 骞1鏈
  • 寮鏈細16寮
  • 椤电爜锛1
  • 鐗堟锛1-1
  • 鎵灞炲垎绫伙細璁$畻鏈 > 娓告垙 > 

    娓告垙缂栫▼


     

鏌ョ湅鏇村...

鍒嗙被:Diary | 鍥哄畾閾炬帴 | 璇勮: 1 | 寮曠敤: 0 | 鏌ョ湅娆℃暟: 1351

浣嶅浘娓叉煋寮曟搸DEMO

 浠婂ぉ涓嬮洩浜嗭紝鏈夌偣鍐...

鐮旂┒浜嗕竴娈垫椂闂碅S3鐨勫浘褰㈡覆鏌撳紩鎿庯紝鐒跺悗鑷繁姝e湪寮鍙戜竴涓備笅闈㈣繖涓槸涓涓狣EMO銆

鐩墠鏄ā鎷80涓晫浜猴紝80棰楀瓙寮癸紝娌℃湁浼樺寲杩囩殑纰版挒娴嬭瘯锛屼换鎰忓睆骞曞昂瀵镐笅FPS绋冲畾鍦40宸﹀彸锛孋PU鏄疎5200銆

DEMO鎴浘锛

鏌ョ湅鏇村...

鍒嗙被:Demo | 鍥哄畾閾炬帴 | 璇勮: 1 | 寮曠敤: 0 | 鏌ョ湅娆℃暟: 1420

鍥犱负椤圭洰涓娇鐢╰imer鐨勬椂鍊欓渶瑕佺敤鍒版殏鍋滃姛鑳斤紝鎵浠ヨ嚜宸卞熀浜巘imer鍐欎簡涓涓甫鏈夋殏鍋滃姛鑳界殑宸ュ叿绫汇

鍏充簬鏆傚仠鍔熻兘鐨勮В閲婏細姣斿鎴戜滑璁惧畾timer姣10绉掓墽琛屼竴娆★紝浣嗘槸鍒颁簡4绉掔殑鏃跺欐垜浠渶瑕佹殏鍋渢imer,绛変箣鍚庡啀璁﹖imer缁х画鎵ц鐨勬椂鍊欙紝鎯冲啀绛6绉掍究鍙互瑙﹀彂timer鐨勪簨浠躲
timer鏈韩鏄笉鍙互瀹炵幇浠ヤ笂鍔熻兘鐨勶紝鍥犱负stop鍚庡啀璋冪敤start,浼氶噸鏂拌绠楀欢杩10绉掋傛墍浠ユ垜鍐欎簡杩欎釜宸ュ叿婊¤冻涓婇潰鐨勯渶姹傘

杩欎釜绫讳究鏄叧閿殑绫:TimerAdvance

澶嶅埗鍐呭鍒板壀璐存澘
  1. package com.jing.utils   
  2. {   
  3.     import flash.events.TimerEvent;   
  4.     import flash.utils.Timer;   
  5.   
  6.     /**  
  7.      * this class   
  8.      * @author jing 
  9.      * @site www.annjing.cn 
  10.      * @date 2010-10-27   
  11.      */    
  12.     public class TimerAdvance extends Timer   
  13.     {   
  14.         private var _delay:Number = 0;   
  15.   
  16.         private var _timerStartDate:Date = null;   
  17.   
  18.         private var _pastTime:Number = -1;   
  19.   
  20.         public function TimerAdvance(delay:Number, repeatCount:int = 0)   
  21.         {   
  22.             _delay = delay;   
  23.             super(delay, repeatCount);   
  24.         }   
  25.   
  26.         private function timerHandler(e:TimerEvent):void  
  27.         {   
  28.             syncDelay();   
  29.             _timerStartDate = new Date();   
  30.         }   
  31.            
  32.         private function syncDelay():void  
  33.         {   
  34.             if(super.delay != _delay)   
  35.             {   
  36.                 super.delay = _delay;      
  37.             }   
  38.         }   
  39.   
  40.         override public function start():void  
  41.         {   
  42.             super.addEventListener(TimerEvent.TIMER, timerHandler);   
  43.             _timerStartDate = new Date();   
  44.             super.start();   
  45.         }   
  46.   
  47.         override public function stop():void  
  48.         {   
  49.             syncDelay();   
  50.             _timerStartDate = null;   
  51.             super.removeEventListener(TimerEvent.TIMER, timerHandler);   
  52.             super.stop();   
  53.         }   
  54.   
  55.         private var _isTimerPause:Boolean = false;   
  56.            
  57.         /**  
  58.          * pause the timer and record the past delay time  
  59.          * when call continueTimer function, the timer  
  60.          * will run and will dispatch TimerEvent when   
  61.          * the remaining delay time pass   
  62.          *   
  63.          */        
  64.         public function pauseTimer():void  
  65.         {   
  66.             if (false == _isTimerPause && true == super.running)   
  67.             {   
  68.                 _isTimerPause = true;   
  69.                 _pastTime = new Date().time - _timerStartDate.time;   
  70.                 super.stop();   
  71.             }   
  72.         }   
  73.   
  74.         /**  
  75.          * continue run the timer by pause record  
  76.          *   
  77.          */        
  78.         public function continueTimer():void  
  79.         {   
  80.             if (true == _isTimerPause && false == super.running)   
  81.             {   
  82.                 _isTimerPause = false;   
  83.                 var newDelay:int = super.delay - _pastTime;   
  84.                 super.delay = newDelay;   
  85.                 _timerStartDate = new Date();   
  86.                 super.start();   
  87.             }   
  88.         }   
  89.            
  90.         /**  
  91.          * this function can return a number value the past delay time.  
  92.          * if game not paused, this function will return -1   
  93.          * @return   
  94.          *   
  95.          */        
  96.         public function getPastDelay():Number   
  97.         {   
  98.             return _pastTime;   
  99.         }   
  100.            
  101.         /**  
  102.          * this function can return a number value the remaining delay time.  
  103.          * if game not paused, this function will return -1  
  104.          * @return   
  105.          *   
  106.          */        
  107.         public function getRemainingDelay():Number   
  108.         {   
  109.             var result:Number = -1;   
  110.             if(true == _isTimerPause)   
  111.             {   
  112.                 result = super.delay - _pastTime;   
  113.             }   
  114.             return result;   
  115.         }   
  116.   
  117.            
  118.         override public function reset():void  
  119.         {   
  120.             stop();   
  121.             super.reset();   
  122.         }   
  123.   
  124.         override public function set delay(value:Number):void  
  125.         {   
  126.             _delay = value;   
  127.             _timerStartDate = new Date();   
  128.             super.delay = value;   
  129.         }   
  130.   
  131.         override public function get delay():Number   
  132.         {   
  133.             return _delay;   
  134.         }   
  135.     }   
  136. }  

 

鏌ョ湅鏇村...

鍒嗙被:ActionScript3 | 鍥哄畾閾炬帴 | 璇勮: 0 | 寮曠敤: 0 | 鏌ョ湅娆℃暟: 932

鍏充簬绛夎鍦板浘鐨勫涔

 鍒╃敤缃戠粶涓婄殑璧勬簮锛屽湪鎺屾彙45°鍦板浘鏋勫缓鍘熺悊浠ュ強A*绠楁硶鍚庤繘琛屼簡涓浜涙敼杩涳細

 鐐瑰嚮鏌ョ湅DEMO 

绀轰緥鍥剧墖锛

鍒嗙被:Demo | 鍥哄畾閾炬帴 | 璇勮: 0 | 寮曠敤: 0 | 鏌ョ湅娆℃暟: 1346

浜虹墿璧板姩鐨勭粌涔

 

 

涓婏細W  
涓嬶細S
宸︼細A
鍙筹細D

鍒嗙被:ActionScript3 | 鍥哄畾閾炬帴 | 璇勮: 0 | 寮曠敤: 0 | 鏌ョ湅娆℃暟: 1187