CADisplayLink 及定時器的使用
第一種:
用CADisplayLink可以實現不停重繪。
例子:
CADisplayLink* gameTimer;
gameTimer = [CADisplayLink displayLinkWithTarget:self
selector:@selector(updateDisplay:)];
[gameTimer addToRunLoop:[NSRunLoop currentRunLoop]
forMode:NSDefaultRunLoopMode];
第二種:
int CCApplication::run() { if (applicationDidFinishLaunching()) { [[CCDirectorCaller sharedDirectorCaller] startMainLoop];//主迴圈開始 } return 0; }
繼續跟進startMainLoop函式
-(void) startMainLoop { // CCDirector::setAnimationInterval() is called, we should invalidate it first [displayLink invalidate]; displayLink = nil; // displayLink是CADisplayLink物件,target是自己,回撥是coCaller displayLink = [NSClassFromString(@"CADisplayLink") displayLinkWithTarget:self selector:@selector(doCaller:)];//看這個doCaller回撥 [displayLink setFrameInterval: self.interval];//設定幀率 [displayLink addToRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];//新增到迴圈並啟動 }
看doCaller回撥,
void CCDisplayLinkDirector::mainLoop(void) { if (m_bPurgeDirecotorInNextLoop) { m_bPurgeDirecotorInNextLoop = false; purgeDirector(); } else if (! m_bInvalid) { drawScene();// draw the scene // release the objects CCPoolManager::sharedPoolManager()->pop(); } }好,一個迴圈完了。最後看到CCPoolManager::sharedPoolManager()->pop();就是用來釋放物件的。
第三種:
相關文章
- java定時器的使用Java定時器
- VC中定時器的使用定時器
- C++定時器的使用C++定時器
- [iOS]各種定時器–最全的定時器使用iOS定時器
- Qt中的定時器的使用QT定時器
- spring中定時器的使用Spring定時器
- 定時器以及定時器的幾個案例定時器
- 微控制器學習(六)定時器的使用定時器
- 使用Selenium時的瀏覽器設定瀏覽器
- 使用CADisplayLink實現UILabel動畫特效UI動畫特效
- Go 的定時器Go定時器
- JS定時器不可靠的原因及解決方案JS定時器
- Spring 定時器的使用—Xml、Annotation、自定義Spring定時器XML
- 直播軟體開發,ScheduledExecutorService定時器的使用定時器
- Spring 定時器的使用---Xml、Annotation、自定義Spring定時器XML
- 多執行緒-定時器的概述和使用執行緒定時器
- 定時器定時器
- javascript定時器(setTimeout和setInterval)的使用詳解JavaScript定時器
- 使用監聽器實現JavaWeb的定時執行JavaWeb
- 非視窗類中使用定時器的方法 (轉)定時器
- Flutter 快速上手定時器/倒數計時及實戰講解Flutter定時器
- iOS定時器iOS定時器
- JavaScript定時器JavaScript定時器
- js定時器JS定時器
- JavaScript 定時器JavaScript定時器
- 核心定時器定時器
- VC++控制檯程式中使用定時器C++定時器
- C++控制檯程式中使用定時器C++定時器
- 網路程式設計定時器二:使用時間輪程式設計定時器
- 【JavaScript定時器小案例】常見的幾種定時器實現的案例JavaScript定時器
- lua定時器與定時任務的介面設計定時器
- 非視窗類中使用定時器的方法(一) (轉)定時器
- 定時器引發的思考定時器
- iOS cell上的定時器iOS定時器
- TCP的四種定時器TCP定時器
- Windows控制檯的定時器Windows定時器
- Golang當中的定時器Golang定時器
- 純生JS輪播,定時器新增和清除定時器JS定時器