Swift4 Day91:Angry birds憤怒鳥5

Swift4 / iOS11 / 2018.04.16–2018.5.8/SpriteKit實作專案

Alice
Daily Swift
5 min readMay 7, 2018

--

我終於考完期中考了,但還有畢業考跟畢業專題阻撓我的iOS修煉之路😂

Angry birds緩慢地持續更新中(我今天看了一下git我從3/19號就開始寫了,自己真的外務耽誤自己好多,要趕快抓回以前常常更新的感覺),今天也是早上上班下午上課晚上寫畢業專題,現在半夜快兩點才在寫這篇文。我盡力在假日把整個Angry birds寫完~~~謝謝大家,還有人寄信問我怎麼沒更新Angry birds太感動了居然有人在看,讓我趕快發文+分享一下瑣事吧🙆

最近實習的公司業務蒸蒸日上,雖然說是實習,但感覺自己根本是正職嘛,很感謝主管很信任我,總是讓我擁有很大的決定權,沒想到上班會是這麼開心的事,很幸運遇到很棒的夥伴,自己跟公司都快速成長的感覺非常棒!

話說前幾天公司需要我幫忙把新的合作夥伴的內容放到網站上,需要讓客戶案子呈現的GIF檔案加上iphone外框,然後再放到網站上,但我發現轉換工具壞掉了。
我就打開Xcode把GIF檔加上去,參考魏巍老師的播放 GIF 動態圖檔 (使用 Swift 4),然後用模擬器打開直接錄,我每次能寫程式解決問題都覺得超開心的,我明明是marketing intern但上班居然寫程式😂😂😂

接下來計畫要去申請Appworks school,期待一整年了希望會上❤️

今天大概會做到這樣有Animation!

Angry Birds 18 — Menu Scene

先import老師提供的SpriteKitButton.swift檔案與圖片,然後再MenuScene加上setupMenu放上剛剛的button,再打開畫面就會呈現presentMenuScene()

Angry Birds 19 — Level Scene

從function中傳資料一開始,action: goToGameSceneFor, index: level

到goToGameSceneFor(level:Int)

讓level帶入,sceneName = “GameScene_\(level)”

再present(scene: gameScene),就會再點選不同數字時跳入不同關卡

例如:點選1時帶入GameScene_1

Angry Birds 20 — New Levels:建立新關卡

先選擇GameScene_1>File>Duplicate>建立一個新檔案命名GameScene_2.sks,要確認custom class是設定在gameScene中

修改的物體的擺設之類的就可以成為新的關卡了

Angry Birds 21 — Animation

let flyingFrames:[SKTexture]應用

原本圖片是放在New Folder,但要做動畫所以要建立Sprite Atlas,把你的圖都丟進去,標號也要標好,因為要用程式抓圖,從1抓到4左右。

像這樣,不可以用資料夾建立喔,這樣會跑不動動畫。

新增一個swift檔案,AnimationHelper,利用這個swift讓影格會從0+到count,創造出會動的動畫樣子。

在Bird的class中加上AnimationHelper中的效果,
didSet是指在屬性發生變化後,更新一下flying的屬性,可以用於界定鳥在此時是否該跑動畫。(e.g.飛的時候跑動畫)
run就可以加Action,removeAllActions()就可以讓動畫停止。

完整程式碼在這每個commit都可以對照命名找到相對的程式碼,有時候沒po文,偷偷更新github代表在寫,想要累積多一點再po😻

--

--