用Swift語言和Sprite Kit復制微信飛機大戰遊戲
阿新 • • 發佈:2017-07-05
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復制微信飛機大戰遊戲