iOS 遊戲開發新手筆記

by | 7 月 2, 2017

在Udemy學遊戲開發,從基礎到完成Flappy bird和Runner遊戲,略過程式碼和大家分享背後細節。

關於課程

前幾天在Udemy發現這堂iOS遊戲開發課程,想想從來沒有寫過遊戲,直接買下當作新世界的起航點。

如果對於iOS App開發陌生,可以看到在編輯器內有許多模板,我目前學習、也是多數人起步的方向,都是在「Single View Application」模板進行開發、而旁邊的「Game」模板倒是完全沒用過。

如果用運動項目來想,大概就是「陸上運動」和「水上運動」的區別吧;就算很熟練跑馬拉松、換到水中的長泳還是需要重新適應環境、學習不同的基本技能。

本來只是想在原先規劃的空檔加減看看、轉換心情;結果因為太有趣了,過去四天除了吃飯外幾乎都在上這堂課!

學會了基本遊戲開發流程、並完成兩個專案:熱門遊戲Flappy bird、跑步障礙賽Cowboy Runner。至於剩下的專案Jack The Giant看起來實在不太吸引我,先無視它的存在。

略過程式碼,和大家分享過程中學到的遊戲邏輯、和我想的有趣範例 🙂

物件移動

遊戲畫面每秒會刷新(update) 很多次,我們可以在每次更新時設定條件,讓物體產生視覺上的移動效果。

比如我在畫面中放上謎樣生物,告訴程式每次刷新畫面時,讓他向左移動一個單位;如果一秒刷新60次,就會一秒向左移動60個單位。可以想像我們站在一個超長的跑步機上面,讓相機鏡頭對著自己,就算是在上面坐著,也會被輸送帶慢慢地送出鏡頭畫面外。

在專案練習的橫向2D遊戲,也只是讓背景和障礙物從右到左輸送過去,角色從頭到尾都在原地跳躍。

觸碰偵測

系統偵測觸碰的位置,執行對應動作。

例如上面的範例,我告訴程式要在我點擊的地方出現一個小偷的大頭貼;也可以依照需求分成點擊螢幕時(touchesBegan)出現、或是手指離開螢幕時(touchesEnded)出現等。

在遊戲裡,當滿足觸碰條件,便執行我們預設的動作。例如Flappy bird中點擊畫面讓小鳥往上飛一下、Cowboy Runner中當玩家點到暫停按鈕的位置,就讓遊戲暫停。

物理屬性

賦予物理屬性,像是受到重力影響的自由掉落(affectedByGravity)、以及碰撞的感應範圍(SKPhysicsBody)等。

感應範圍像是在特訓99操縱飛機閃躲子彈、或是在東方系列閃躲彈幕都是好例子,圖片尺寸不完全等於感知的範圍,所以會出現擦過機身但沒有判定失敗的情況。

有看過漫畫獵人,就想像成圓吧。

日常生活如果有覺得遠遠靠近一些人,周遭的空氣就變了,可能是結冰的感覺或是在心中開出粉紅色的花朵,大概類似那樣的感覺,雖然沒有實際碰觸到、但已經撞到氣場(?),就像圖中外圍的圈圈。

動態靜態物件

關於物件可不可以被其他物件影響(isDynamic)位置的設定。

像是玩倉庫番,工人可以推動地上的箱子就是動態;牆壁相對來說就是靜態。或是屁股離開椅子,找到附近的矮櫃,可以抬起來移動就是動態、如果是嵌在牆內的系統傢俱就是靜態,類似這樣的概念。

範例中我把超人設成靜態物件,就不會被從上面墜落的角色壓到畫面外,直挺挺地飄在原地。

Flappy bird

完成品。

不過比起成品,過程中的嘗試更加有趣,像是沒有把地板設成靜態、小鳥一降落地板就被擊沈了;沒有設定禁止旋轉,小鳥就會轉啊轉的好開心。

Cowboy Runner

完成品。

跑步牛仔是用11個圖案快速播放形成的,難以想像細膩動畫的背後有多驚人,這邊看到的第一個念頭是「請人幫忙設計看來資金要充足點呢」。

為何只能在地上奔跑?

作者任性的想讓你飛就飛吧,牛仔先生~人生不設限啊~~~(揮手)

小結

文章和錄影片加起來用了四個多小時整理,希望這些遊戲背後的設計概念,能對第一次接觸的你有所幫助。就算不是開發者,知道這些新東西也很有趣啊~是不是~

吳 致賢

吳 致賢

擁有 App/Web 開發經驗的軟體 PM,從 0 到 1 執行過 20 個以上全客製專案,包含悠遊付、friDay 影音等。關於我的簡歷點此

Recent Posts

時尚與穿搭,啟蒙我審美的影片

時尚與穿搭,啟蒙我審美的影片

在 YouTube 與 bilibili 看了超過一百部關於時尚、穿搭、服飾主題的影片,整理出幾個精選,希望讓讀者們從比較有趣的角度瞭解:)