iPhone游戲開發(fā)之Cocos2d基本概念
iPhone游戲開發(fā)之Cocos2d基本概念是本文要介紹的內(nèi)容,這里主要是翻譯 cocos2d wiki 中的文檔,也參考了其他博文。主要是作為基礎(chǔ)知識(shí)作為這個(gè)系列的開始,來看詳細(xì)內(nèi)容。
Scenes 場(chǎng)景
場(chǎng)景是被一個(gè)Scene 對(duì)象實(shí)現(xiàn)的,或多或少的,是一個(gè)獨(dú)立的程序流的一部分。一些人可把它稱作是screens屏幕,或者是stages舞臺(tái)。你的程序可以有很多場(chǎng)景,但是只有一個(gè)可以在給定的時(shí)間內(nèi)的被激活的。
例如,你可能有一個(gè)游戲,它有如下的場(chǎng)景。
- Intro, Menu, Level 1, Cutscene 1, Level 2, Winning cutscene, losing cutscene, High scores screen
你可以定義他們中的任何一個(gè)作為獨(dú)立的應(yīng)用,下面每一個(gè)場(chǎng)景之間通過一條線相連接,如圖:
一個(gè)cocos2d由一個(gè)或者多個(gè)層組成(層是用Layer對(duì)象實(shí)現(xiàn)的),他們堆在了一起。層給了場(chǎng)景一個(gè)展示和表現(xiàn),最簡(jiǎn)單的操作就是創(chuàng)建一個(gè)有層的場(chǎng)景概念。一些場(chǎng)景類的集合叫做transitions,是通過TransitionScene 對(duì)象來實(shí)現(xiàn)的,他允許你可以在兩個(gè)場(chǎng)景之間回滾。例如fade out/in,從一個(gè)面滑動(dòng)的等。因?yàn)閳?chǎng)景是CocosNode的子類,所以說他們可以通過手動(dòng)或者使用actions的方式被改變。
Director 指導(dǎo)者
指導(dǎo)者可以是一個(gè)組件,他可以知道場(chǎng)景向前和向后。指導(dǎo)者是一個(gè)共享的,單件對(duì)象,他知道當(dāng)前哪一個(gè)場(chǎng)景應(yīng)該是active的,他可以處理?xiàng)@锩娴囊幌盗袌?chǎng)景,就像scene calls,暫停一個(gè)Scene和,把它存起來,然后其他場(chǎng)景進(jìn)入,回退到開始。。當(dāng)一個(gè)層需要去push,替換,或者是在當(dāng)前場(chǎng)景的末尾,這個(gè)指導(dǎo)者是真正能夠改變場(chǎng)景的人。指導(dǎo)者同樣會(huì)對(duì)主屏幕的初始化負(fù)責(zé)。
Layers 層
Layer有整個(gè)屏幕這個(gè)大的可畫的區(qū)域,并且他知道怎么畫。它可以部分透明(有一個(gè)洞或者整個(gè)/全部之中的一般透明),允許看到它下面的其他層。層就是定義展示和表現(xiàn)的,所以你編程的更多時(shí)間是花在的層的子類上了,如圖:
你可以在層上定義事件的handlers,事件在層上從頭到尾的延伸,直到某個(gè)層捕捉到了事件,并且接受了它。雖然很多的程序需要你自己定義自定義的層類,cocos2d提供了一個(gè)非常好的預(yù)定義層的library。
例如簡(jiǎn)單的menu 層使用Menu,一個(gè)color層,用ColorLayer,定義一個(gè)多層的Layer,等等。Layer可以包含Sprite對(duì)象,Label對(duì)象,甚至讓其他的Layer對(duì)象當(dāng)作起事件。因?yàn)閷右彩荂ocosNode的子類,你可以通過手動(dòng)或者使用Action使其改變。See Actions for more detail about actions.
Sprites 精靈
精靈的實(shí)現(xiàn)是通過Sprite類,他們可以有很多子精靈,當(dāng)一個(gè)父精靈變化的時(shí)候,它的子精靈也將會(huì)改變。
因?yàn)榫`的子類是cocosNode,所以他們可以被手動(dòng)的或者使用actions來改變。更多的細(xì)節(jié)就關(guān)注Action吧。
小結(jié):iPhone游戲開發(fā)之Cocos2d基本概念的內(nèi)容介紹完了,希望本文對(duì)你有所幫助!