敢不敢挑战用Cocos3.8复刻曾经很火的割绳子游戏?
引言
哈喽大家好,我是亿元程序员,最近有小伙伴私信笔者:
亿哥,不知道你有没有玩过上面那款
16年前火遍全网的割绳子游戏。我最近在做游戏时,需要做类似这个游戏里面的绳子效果,不知道怎么实现!
你最近不是在更新热门小游戏实战合集吗!
敢不敢挑战用Cocos3.8复刻一个?
好家伙,这款游戏笔者最熟悉不过了,那时候苹果4才刚出来没多久,这样的触屏物理游戏可以算得上人手一个。
关于割绳子的物理效果,我记得之前参与论坛投稿活动时,参考某个砍树游戏出过一期:
翻了一下,看到了一些扎心的评论:
言归正传,本期带大家一起来看看,如何在Cocos游戏开发中,如何实现不像棍子的绳子效果,并且实战做一个曾经很火的割绳子游戏。
本文源工程可在文末获取,小伙伴们自行前往。
回顾一下
想要在Cocos游戏开发中,实现一条带有物理效果的绳子,可以使用我们系统自带的距离关节Distance Joint。
距离关节会将关节两端的刚体约束在一个最大范围内。超出该范围时,刚体的运动会互相影响。
既然如此,为什么之前做的绳子像棍子?
关节太少
因为之前做的demo,钩子和物品之间,仅仅使用了一个距离关节,所以很难模拟出来绳子柔软的效果。
那么不像棍子的绳子怎么做?
增加足够多的关节
首先制作一节5*20的绳子,属性组件如下:
理论上只要添加足够多的关节,就会越来越接近柔软的绳子效果,因此我们可以通过代码去控制生成足够多的关节,一节连一节。
效果如下,不过绳子看起来并不是连续的,关节因为重力效果,会被拉开一段距离。
这个问题怎么解决?
画线辅助
为了解决受重力效果导致的绳结断开的问题,我们可以通过Graphics组件逐点进行画线,代码如下。
效果如下,但是看起来还是有点问题,绳子连接处不太和谐,不像一根绳子,反而像哼哼哈嘿的双截棍:
因此我们需要把绳子画得更加平滑一点。
平滑曲线
想要让曲线更加平滑,通常可以采用二次贝塞尔曲线连接相邻点,首先我们先要把所有的点位收集起来:
核心的绘制方法quadraticCurveTo:
这样看起来就合理一点了:
通过上述流程,我们就能成功实现一根不像棍子的绳子了。
接下来我们完成割绳子游戏的剩余部分。
割绳子游戏实战
有了上面的绳子基础,我们想要实现一个完整的割绳子游戏就易如反掌了。
1. 割绳子
既然是割绳子游戏,割当然是也是重要的一环,割绳子最主要判断手指移动的轨迹与实际上哪一段关节相交。
判断相交的核心方法如下:
2. 切割效果
为了增加游戏效果,我们可以在屏幕上画线时,增加一段拖尾效果。
效果如下:
3. 其他游戏元素
除去绳子相关的部分,剩下就是割绳子游戏的其他元素,包括:
-
钩子: 主要起到固定绳子的作用,需要添加刚体组件,
Type设置为Static。 -
甜甜圈: 需要添加碰撞组件、管理脚本以及刚体组件,需要开启
Enabled Contact Listener,在对应的管理脚本进行处理碰撞事件。如下碰撞到星星和目标点时进行处理。
-
星星: 添加碰撞组件和管理脚本,增加一些简单的动画。
旋转和碰撞放大效果。
-
目标点: 目标点和上面差不多,主要是用来判断是否到达目标点,以及添加一些到达动画。
-
其他: 随着游戏关卡地不断增加,会有越来越多的其他游戏元素,笔者只实现了以上基础的部分,感兴趣的小伙伴们可以自行扩展。
4. 效果演示
结语
割绳子游戏真的是回忆杀,勾起笔者的无限回忆,等我退休了,一定要完完整整复刻一个,一边复刻一边玩。
小伙伴们,你们玩过这款游戏吗?那时候的你们进入游戏行业了吗?
本文实战完整源码已集成到亿元Cocos小游戏实战合集,内含体验链接。
我是"亿元程序员",一位有着8年游戏行业经验的主程。在游戏开发中,希望能给到您帮助, 也希望通过您能帮助到大家。
AD:笔者线上的小游戏《打螺丝闯关》《贪吃蛇掌机经典》《重力迷宫球》《填色之旅》《方块掌机经典》大家可以自行点击搜索体验。
实不相瞒,想要个赞和爱心!请把该文章分享给你觉得有需要的其他小伙伴。谢谢!
推荐文章: