使用SceneKit编写微信跳一跳小游戏(一)
前言
新年第一篇文章,来写一下这几天写的跳一跳小游戏,最近微信推出了这个小游戏,很多人都沉迷于打败好友无法自拔,我也不例外。正好最近也在写SceneKit的系列教程,于是决定做一款这样的游戏练练手,这一篇文章主要介绍游戏项目的主要结构和大致逻辑,因为还有不少地方需要优化,所以更多细节的介绍会在后续文章中进行。下面是目前项目运行的效果。
游戏的主要逻辑
游戏逻辑比较简单,主要有跳跃的玩家和基座组成。玩家按下后开始蓄力,松手跳起,如果落到下一个基座,则生成新的基座,否则游戏结束。
主要代码
项目Roles文件夹中,有BaseBox(基座),Player(玩家)两个角色的类,后期可以通过继承BaseBox来实现其他行为或者外观的基座。在Controllers文件夹中,有控制各种逻辑的控制器,比如BoxController控制基座的初始化,新基座的生成,CameraController控制摄像机的行为,PlayerController控制玩家的运动和物理碰撞。游戏中的碰撞并没有使用SceneKit的物理引擎,只是自己写了简单的基于BoundingBox的检测机制。Game.swift中包含对这些Controller的配置和依赖处理代码。
项目代码获取
如果你有兴趣,可以获取项目代码。如果觉得还可以,欢迎Star~,也欢迎访问我的博客。
TODO
重构优化代码
完善游戏UI
增加音效
增加基座模型
增加不同停留效果的基座
增加降落在中心附近时的特效,以及精准降落combo效果
修复跳起后在空中伸缩的动画
- 假维权:一团伙以使用极限词汇为由向商家索要封口费
- 西城年底建成使用首个胡同慢行系统
- 沙坪坝西永大道和江北松石大道公交优先道明日投入使用
- 长租公寓甲醛超标问题缘何多发?使用材料问题重重
- 使用油烟机也会犯“错误”
- 临泉人快看看你有没有这个证,可以抵现金使用!
- 中央财政积极推进农垦国有土地使用权确权登记发证工作
- 新学期课本竟破旧缺页有涂鸦,校方回应:使用旧课本符合规定
- 市石墨烯示范基地即将交付使用
- 49万买一车位!看到实物后,男子崩溃:太影响使用了!