前言
新年第一篇文章,來寫一下這幾天寫的跳一跳小遊戲,最近微信推出了這個小遊戲,很多人都沉迷於打敗好友無法自拔,我也不例外。正好最近也在寫SceneKit的系列教程,於是決定做一款這樣的遊戲練練手,這一篇文章主要介紹遊戲專案的主要結構和大致邏輯,因為還有不少地方需要優化,所以更多細節的介紹會在後續文章中進行。下面是目前專案執行的效果。
遊戲的主要邏輯
遊戲邏輯比較簡單,主要有跳躍的玩家和基座組成。玩家按下後開始蓄力,鬆手跳起,如果落到下一個基座,則生成新的基座,否則遊戲結束。
主要程式碼
在專案Roles資料夾中,有BaseBox(基座)
,Player(玩家)兩個角色的類,後期可以通過繼承BaseBox
來實現其他行為或者外觀的基座。在Controllers資料夾中,有控制各種邏輯的控制器,比如BoxController
控制基座的初始化,新基座的生成,CameraController
控制攝像機的行為,PlayerController
控制玩家的運動和物理碰撞。遊戲中的碰撞並沒有使用SceneKit的物理引擎,只是自己寫了簡單的基於BoundingBox的檢測機制。Game.swift
中包含對這些Controller的配置和依賴處理程式碼。
專案程式碼獲取
如果你有興趣,可以獲取專案程式碼。如果覺得還可以,歡迎Star~,也歡迎訪問我的部落格。
TODO
- 重構優化程式碼
- 完善遊戲UI
- 增加音效
- 增加基座模型
- 增加不同停留效果的基座
- 增加降落在中心附近時的特效,以及精準降落combo效果
- 修復跳起後在空中伸縮的動畫