Christmas Cute Shooting!🎅🏻🎄🎁

自訂 controller 類別和利用 viewDidLoad 客製 App 畫面 (Use SpritKit & Particle)

(4) 參考連結 (彼得潘教學資源)

利用 SpriteKit Particle File 製造下雪的粒子效果

利用 CAEmitterLayer 製作 Xmas 的下雪動畫

參考同學作品 IOS 期末APP

(5) 內容說明(程式碼請見GitHub)

這次的練習是關於SpriteKit & Particle,在程式碼部分,大部分都有簡單註記,有興趣的朋友再從GitHub下載程式碼唷!

由於這次是練習非常不熟的SpriteKit,所以參考了很多資訊及爬文,有幾個部分是這次遇到的狀況,像是從View開啟skView,並使用SpriteKit Particle 製作下雪特效後,原本Storyboard的background photo和button都會被蓋住,所以需要將程式碼 skView.backgroundColor和cene.backgroundColor修改為 .clear,才看得到原本Storyboard的物件唷!

接著就會遇到另一個狀況,無法按原本進入遊戲的button,所以會變成無法點選,也無法透過segue連結到下一個view controller,這時需要用程式碼創建一個button,並自己設定@objc func連結到下一個view controller。

之後會再遇到一個遊戲畫面定格閃退問題,由於是在原本的View Controller加上SpriteKit Particle,所以在進入遊戲畫面時,需要先移除在view開啟的skView,才不會和之後遊戲主畫面的skView衝突。

這是我遇到的狀況,不確定畫面定格主因是否為這個問題。
但新增下列程式碼後,遊戲到一半定格閃退問題是有解決的。

// 移除在view開啟的skViewfor view in self.view.subviews {view.removeFromSuperview()}

另一個小問題是,原始的view和skView的背景音樂播放有點不同,後著好像無法調整內建音量,所以在view的player有特別調整音量設定,才不會造成遊戲首頁和次頁及遊戲主畫面的背景音樂音量落差太大。

遊戲主畫面的程式碼請參考GitHub分享(這部分我很多都還在努力理解中)

至於遊戲主畫面的GameSence.swift和GameOver.swift,都是使用SpriteKit的語法,這部分參考了同學的作品,也參考了13歲的優秀年輕人的程式碼,和很多網路上分享的資訊。

SpriteKit尚不熟悉,所以只能盡量看懂部分程式碼,並針對自己想要的需求進行修改與調整。

裡面新增了一個playe可以左右移動的功能

一開始player會發生移動到frame外面(就是…聖誕老人會不見,但還是可以發射拐杖糖子彈💂‍♀️😅)所以進行了位移的調整設定,才比較正常一點。

後來想在畫面上用聖誕襪來代表生命值,就增加了以下程式碼

但目前遇到的一個大問題是關於兩個SKSpriteNode的碰撞檢測
bullet(拐杖糖)和monster(雪人和薑餅人),可以自動感測到碰撞。

但moster和player(聖誕老人)以及bellBumb(鈴鐺炸彈)和moster,無法正常感測到,這部分查了很久的文章,試過所有可以查到的建議程式碼,但…尚無法解決,所以bellBumb目前只是裝飾畫面而已唷!(這部分未來找到解決方案時,會在進行修正)

(6) 心得感想

這次的練習原本是想設計消消樂的方塊遊戲,但目前對於雙重陣列及物件的設定都還不熟悉,所以修改為製作和聖誕節有關的小遊戲。

後來看到彼得潘分享的雪花飄文章,就決定從這邊開始設計與延伸,最後就是這款走可愛風的聖誕射擊遊戲嘍!😆🎅🏻

SpriteKit真的是很有趣的東西!未來也會持續學習!
加油加油!持續努力和彼得潘學習,並打好Swift基礎與進階設定!🙆‍♂️🙆‍♀️

感謝彼得潘的建議!新增一個雪人和薑餅人被拐杖糖擊中的可愛音效!感覺整個更逗趣了!!🤣🤣

--

--