? ? ? ?最近基于SpriteKit做了幾個(gè)小項(xiàng)目,由于小項(xiàng)目也并不是很難,因此也沒(méi)有把SpriteKit中很多的功能發(fā)揮出來(lái)。程度大概是對(duì)SpriteKit進(jìn)行了一個(gè)初步的了解。
? ? ? 1.首先導(dǎo)入庫(kù)#import <SpriteKit/SpriteKit.h>
? ? ? 2.創(chuàng)建游戲場(chǎng)景,游戲場(chǎng)景由一個(gè)叫SKView的容器裝載,SKView基于UIView,本人覺(jué)得SKView承擔(dān)一個(gè)類似統(tǒng)籌的角色,可以監(jiān)控游戲場(chǎng)景scene的幀率/場(chǎng)景中精靈的個(gè)數(shù)/渲染/控制圖層關(guān)系等。

? ? ? ? 3.SKView presentScene后,會(huì)走進(jìn)GameScene的didMoveToView方法中,在此方法中,你能開(kāi)始創(chuàng)建各種精靈圖片,就像在view上創(chuàng)建各種控件,比如按鈕STControlSprite/文字標(biāo)簽SKLabelNode/圖片SKSpriteNode,此處有幾個(gè)小坑,其一:frame是頂部為0,而底部為高,但到了SpriteKit這里,底部為0,而頂部為高,并且通過(guò)size和;其二:SKLabelNode文字標(biāo)簽中,創(chuàng)建后,如果不對(duì)屬性fontName進(jìn)行設(shè)定,那么顯示出來(lái)的文字會(huì)呈半透明狀態(tài),坑得不要不要的;其三,如果想實(shí)現(xiàn)精靈的點(diǎn)擊事件要重寫(xiě)touch事件,不過(guò)有封裝好的,STSpriteKit,里面有STControlSprite類,比較專門(mén)處理點(diǎn)擊事件;其四,如果要實(shí)現(xiàn)label文字的一些特殊效果,比如陰影效果等,需要用富文本drawInrect畫(huà)出來(lái),文字左右對(duì)齊/居中等需要通過(guò)anchorPoint進(jìn)行設(shè)置,當(dāng)然,也有封裝好的,比如SKLabelNodePlus用起來(lái)就簡(jiǎn)單多了。

????4.如下圖,做一個(gè)場(chǎng)景,點(diǎn)擊開(kāi)始,右邊的方框像泡泡龍噴出泡泡的效果,泡泡落在綠色和紫色的方框內(nèi);開(kāi)啟定時(shí)器,隨機(jī)生成SKshapeNode的泡泡,落點(diǎn)在綠色node與紫色node的隨機(jī)位置上;

5.然后順便玩了一下里面的粒子效果,年紀(jì)大記性差,趁還記得過(guò)會(huì)把紋理、粒子效果的學(xué)習(xí)也記錄一下;