怎么制作切水果游戏呢?我用这种方式实现!

时间:2022-07-25
本文章向大家介绍怎么制作切水果游戏呢?我用这种方式实现!,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

游戏预览

说明

只做了一个简单的游戏 demo,实现切割的效果,没有做完整的游戏,有兴趣可以自己尝试去完成完整项目。

实现原理

水果的生成。这个可以根据自己需要,调整水果出现的位置,运动的轨迹,本篇因为主要讲切割效果的实现,就简单的从屏幕上方往下方掉落,只是 x 坐标和旋转角度做随机,然后使用 cc.tween 做简单的运动。

水果预制体。考虑到水果种类、大小、切割后的效果不一致,就把每一种水果都单独做了一个预制体,所有水果共用一个水果的逻辑控制脚本 Fruit。

单独水果预制体的实现。单个预制体,分为水果和炸弹两种,还可以根据自己的需要添加其他类型,比如道具什么的。实现方法,可以根据不同的种类,做修改和定制开发。

普通的水果预制体,分两部分,正常状态和切开状态,以苹果为例,参考下图所示。

正常状态

切开状态

把正常状态、切开状态组装到一起,大小控制到一样,这样的话,切开状态一开始和正常状态其实是一样的。

游戏一开始的时候,显示正常状态,游戏结束以后,隐藏正常状态,显示切开状态,切开的两部分,分别添加刚体,赋予两个不同的速度,开启物理系统,就能模拟水果被切开状态了。

滑动控制

游戏过程中,判断触摸起始点和结束点,触摸结束后,判断两点间的连线,与屏幕中的水果、炸弹是否有接触即可。判断的时候有两种情况,一种相交,一种是包含,具体如下图代码。

游戏结束

如果判断划到的是炸弹,可以根据需要播放动画,然后停掉游戏,屏幕中掉落的水果,可以通过移除所有动画来控制:

cc.director.getActionManager().removeAllActions()

掉落的刚体,可以暂停物理系统来控制:

cc.director.getPhysicsManager().enabled = false;