阅读视图

发现新文章,点击刷新页面。

敢不敢挑战用Cocos3.8复刻曾经很火的割绳子游戏?

在这里插入图片描述

引言

哈喽大家好,我是亿元程序员,最近有小伙伴私信笔者:

亿哥,不知道你有没有玩过上面那款16年前火遍全网的割绳子游戏。

我最近在做游戏时,需要做类似这个游戏里面的绳子效果,不知道怎么实现!

你最近不是在更新热门小游戏实战合集吗!

敢不敢挑战用Cocos3.8复刻一个?

好家伙,这款游戏笔者最熟悉不过了,那时候苹果4才刚出来没多久,这样的触屏物理游戏可以算得上人手一个。

关于割绳子的物理效果,我记得之前参与论坛投稿活动时,参考某个砍树游戏出过一期:

翻了一下,看到了一些扎心的评论:

你这是棍子吧

言归正传,本期带大家一起来看看,如何在Cocos游戏开发中,如何实现不像棍子的绳子效果,并且实战做一个曾经很火的割绳子游戏。

本文源工程可在文末获取,小伙伴们自行前往。

回顾一下

想要Cocos游戏开发中,实现一条带有物理效果的绳子,可以使用我们系统自带的距离关节Distance Joint

距离关节会将关节两端的刚体约束在一个最大范围内。超出该范围时,刚体的运动会互相影响。

来源于Cocos官方文档

既然如此,为什么之前做的绳子像棍子?

关节太少

因为之前做的demo,钩子和物品之间,仅仅使用了一个距离关节,所以很难模拟出来绳子柔软的效果。

那么不像棍子的绳子怎么做?

增加足够多的关节

首先制作一节5*20的绳子,属性组件如下:

理论上只要添加足够多的关节,就会越来越接近柔软的绳子效果,因此我们可以通过代码去控制生成足够多的关节,一节连一节。

效果如下,不过绳子看起来并不是连续的,关节因为重力效果,会被拉开一段距离。

这个问题怎么解决?

画线辅助

为了解决受重力效果导致的绳结断开的问题,我们可以通过Graphics组件逐点进行画线,代码如下。

效果如下,但是看起来还是有点问题,绳子连接处不太和谐,不像一根绳子,反而像哼哼哈嘿的双截棍:

因此我们需要把绳子画得更加平滑一点。

平滑曲线

想要让曲线更加平滑,通常可以采用二次贝塞尔曲线连接相邻点,首先我们先要把所有的点位收集起来:

核心的绘制方法quadraticCurveTo

这样看起来就合理一点了:

通过上述流程,我们就能成功实现一根不像棍子的绳子了。

接下来我们完成割绳子游戏的剩余部分。

割绳子游戏实战

有了上面的绳子基础,我们想要实现一个完整的割绳子游戏就易如反掌了。

1. 割绳子

既然是割绳子游戏,割当然是也是重要的一环,割绳子最主要判断手指移动的轨迹与实际上哪一段关节相交。

判断相交的核心方法如下:

2. 切割效果

为了增加游戏效果,我们可以在屏幕上画线时,增加一段拖尾效果。

效果如下:

3. 其他游戏元素

除去绳子相关的部分,剩下就是割绳子游戏的其他元素,包括:

  • 钩子: 主要起到固定绳子的作用,需要添加刚体组件,Type设置为Static

  • 甜甜圈: 需要添加碰撞组件、管理脚本以及刚体组件,需要开启Enabled Contact Listener,在对应的管理脚本进行处理碰撞事件。 如下碰撞到星星和目标点时进行处理。

  • 星星: 添加碰撞组件和管理脚本,增加一些简单的动画。 旋转和碰撞放大效果。

  • 目标点: 目标点和上面差不多,主要是用来判断是否到达目标点,以及添加一些到达动画。

  • 其他: 随着游戏关卡地不断增加,会有越来越多的其他游戏元素,笔者只实现了以上基础的部分,感兴趣的小伙伴们可以自行扩展。

4. 效果演示

在这里插入图片描述

结语

割绳子游戏真的是回忆杀,勾起笔者的无限回忆,等我退休了,一定要完完整整复刻一个,一边复刻一边玩。

小伙伴们,你们玩过这款游戏吗?那时候的你们进入游戏行业了吗?

本文实战完整源码已集成到亿元Cocos小游戏实战合集,内含体验链接。


我是"亿元程序员",一位有着8年游戏行业经验的主程。在游戏开发中,希望能给到您帮助, 也希望通过您能帮助到大家。

AD:笔者线上的小游戏《打螺丝闯关》《贪吃蛇掌机经典》《重力迷宫球》《填色之旅》《方块掌机经典》大家可以自行点击搜索体验。

实不相瞒,想要个爱心!请把该文章分享给你觉得有需要的其他小伙伴。谢谢!

推荐文章:

亿元Cocos小游戏实战合集

Cocos游戏如何接入安卓穿山甲广告变现?

你知道和不知道的微信小游戏常用API整理,赶紧收藏用起来~

Cocos游戏如何快速接入抖音小游戏广告变现?

如何在CocosCreator3.8中实现割绳子游戏效果

如何在CocosCreator3.8中实现动态切割模型?

Cocos游戏开发中的贴花效果

❌