正文

入 門(11)

iPhone & iPad Cocos2D游戲開發(fā)實(shí)戰(zhàn) 作者:(美)伊特海姆


  

注意:

在iOS設(shè)備上不能以高于60fps的幀率進(jìn)行渲染,因?yàn)樵O(shè)備的屏幕刷新率被鎖定為最高60fps。如果強(qiáng)迫cocos2d以高于60fps的幀率進(jìn)行渲染,那么在最好情況下,cocos2d會以60fps的幀率進(jìn)行渲染;而在最壞情況下,它的幀率反而會下降。所以,如果想讓cocos2d以最快速度進(jìn)行渲染,應(yīng)把動(dòng)作間隔參數(shù)設(shè)為1.0/60。

顯示幀率

啟動(dòng)幀率的顯示功能以后,在屏幕的左下角會出現(xiàn)一個(gè)小小的數(shù)字。這就是應(yīng)用程序的幀率,或者說是每秒刷新的幀數(shù)。理想狀況下,游戲應(yīng)該始終以60fps的速度進(jìn)行刷新,尤其當(dāng)游戲是個(gè)動(dòng)作類游戲的時(shí)候。有些游戲,例如拼圖,則可以恒定在30fps。通過顯示幀率,你可以對游戲的幀率進(jìn)行實(shí)時(shí)檢測,注意觀察是否存在問題。

注意:

如果需要調(diào)整顯示幀率的反應(yīng)速度,可以在ccConfig.h文件中修改CC_DIRECTOR_ FPS_INTERVAL代碼行。該文件位于cocos2d Sources/cocos2d組中。該值默認(rèn)為0.1,即在默認(rèn)情況下,表示幀率的數(shù)字會在每秒被刷新10次。如果增大該值,那么小數(shù)字就會被刷新得更慢,雖然這個(gè)變化不明顯,但還是存在的。

HelloWorldScene類

HelloWorldScene類中的代碼是真正用于顯示“Hello World”標(biāo)簽的。在介紹這些內(nèi)容之前,你應(yīng)該了解cocos2d采用了多個(gè)層級的CCNode對象來決定在什么地方顯示什么內(nèi)容。

所有節(jié)點(diǎn)的基類都是CCNode,它包含一個(gè)位置屬性,但沒有視覺上的顯示。它是其他所有節(jié)點(diǎn)類的父類,包括最基本的CCScene類和CCLayer類。

CCScene類是一個(gè)抽象概念,它僅用于根據(jù)對象的像素坐標(biāo)把對象放置到場景中正確的位置。所以,CCScene節(jié)點(diǎn)通常是整個(gè)cocos2d場景體系的根節(jié)點(diǎn)。

CCLayer類本身幾乎沒有什么功能,但它可用于接收觸摸和加速計(jì)輸入。它常被用作CCScene的第一個(gè)子節(jié)點(diǎn),因?yàn)槊總€(gè)游戲至少都會使用觸摸輸入的功能。

打開HelloWorldScene.h頭文件,你會看到HelloWorld類派生自CCLayer類。

由于CCScene類是一個(gè)抽象概念,因此創(chuàng)建場景的默認(rèn)方式是通過類中的靜態(tài)初始化方法“+(id)     scene”來完成的。該方法創(chuàng)建了一個(gè)普通的CCScene對象,并把HelloWorld類的一個(gè)實(shí)例添加到剛創(chuàng)建的CCScene對象中。CCScene幾乎永遠(yuǎn)都是用這種方式創(chuàng)建并使用的。下面列舉一個(gè)通用的“+(id) scene”方法示例

+(id) scene {

CCScene *scene = [CCScene node];

id node = [HelloWorld node];

[scene addChild:node];

 

return scene;

}


上一章目錄下一章

Copyright ? 讀書網(wǎng) www.dappsexplained.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號