1. 程式人生 > >用Swift語言和Sprite Kit復制微信飛機大戰遊戲

用Swift語言和Sprite Kit復制微信飛機大戰遊戲

fill fontsize blog mark 是把 又一 tac 網上 class

先上GitHub鏈接:

https://github.com/songrotek/PlaneWar.git

技術分享


接下來略微解說一下!

這個程序還有點Bug,見諒!


1 說明

遊戲採用了Sprite kit最新的Per pixel for physic 技術。就是直接使用texture紋理作為sprite的physics body 。

遊戲的texture.atlas從別的打飛機項目中拷之並辛苦地分解了。

遊戲編寫借鑒了網上的objc代碼!


2 遊戲編寫過程

加入背景-》

加入控制的飛機-》

加入發子彈-》

加入敵機-》

檢測contact接觸-》

加入分數-》

加入遊戲控制暫停。繼續。又一次開始


3 須要註意的問題

1)SKScene

GameScene加載時默認的frame大小 是1024*768,這是因為GameScene.sks的設置決定的。

但對於打飛機這款僅僅要豎屏就能玩的遊戲來說,沒有這個必要,所以在GameViewController裏初始化時設置了GameScene的大小

scene.size = view.frame.size

當然也能夠在Sprite kit editor中直接改

2)per pixel的問題

因為physics body是texture的形狀並且是像素級別。所以有鋸齒,導致的問題就是contact接觸檢測時出現一次接觸調用n次didBeginContact:函數

解決的方法就是把圖用photoshop打開編輯。把邊修得平一點。


4 小結

總體上來說。用Swift和ObjC本質是一樣的。該怎麽編寫還是得怎麽編寫,但代碼確實是簡潔了不少,能夠節省非常多時間。所以建議換到Swift!




用Swift語言和Sprite Kit復制微信飛機大戰遊戲