美文网首页iOS学习开发程序员
SceneKit编写粗暴版微信跳一跳

SceneKit编写粗暴版微信跳一跳

作者: _小迷糊_997 | 来源:发表于2018-04-08 21:57 被阅读244次
    前言
    今年什么最火,当然是微信小程序,我相信很多人沉迷在如何打败自己的好友让自己登上榜顶中,我也这样的,最近刚好有个项目要用到SceneKit,刚好拿这个小程序练练手,这一篇文章主要介绍游戏项目的主要结构和大致逻辑,下面是目前项目运行的效果。 效果图
    游戏逻辑

    初始化->点击屏幕蓄力->释放跳跃->判断成功->移动相机->生成下一个跳台->下一次跳跃->判断失败->游戏结束

    主要代码
    • 创建工程
      直接新建的Single View App3
    • 初始化场景
      SceneKit中所有的物体、行为都要在SCNScene中,而SCNScene需要在SCNView中。在Demo中,包括SCNView、SCNScene、floor、camera、light等,这些一开始就要准备好的元素。我为了体现游戏的操作过程,把这些初始化都放在了自己身上懒加载。想要目标始终在视线范围内,我们得在“小人”跳走后让镜头跟随。可是如果一直让镜头跟随小人,会让整个游戏看起来特别晃。所以我让相机跟随站台,每成功跳一次,将相机移动观察新站台。
    • 蓄力的过程
      蓄力的过程用到了长按手势,对,就和写App里的长按一样。SCNView是基于UIView的,可以直接将手势加在上面。设置longPressGesture.minimumPressDuration = 0;保证短按也能监听到。这里有一个知识点是自定义SCNAction的使用。
      很简单地实现了颜色的渐变动画。力量越大,颜色越红。在释放跳跃的瞬间,取消Action即可。
    • 最后,游戏结束。
      弹出的界面是UIView实现的。SceneKit就是一个framework,可以和其他UIKit之类的完全无缝衔接。
      以上,加注释400行代码,粗暴版跳一跳完成。收工!
    TODO
    • 重构优化代码
    • 完善游戏UI
    • 增加音效
    • 增加基座模型
    • 增加不同停留效果的基座
    • 增加降落在中心附近时的特效,以及精准降落combo效果
    • 修复跳起后在空中伸缩的动画
    项目代码获取

    想要获取案例源码可以加我QQ:3344964106
    最近在研究这一块,想要和我一起学习进步可以加下技术交流群:656315826

    相关文章

      网友评论

        本文标题:SceneKit编写粗暴版微信跳一跳

        本文链接:https://www.haomeiwen.com/subject/djomhftx.html