预览效果
玩法介绍
■ 具体玩法,可以搜微信小游戏【挤水果】,只实现了部分功能。游戏开始后,点击屏幕,出现标尺,松开后,水果上的水滴滴落到杯子中。这一期讲解三部分的实现:
1. 标尺显示的控制;
2. 水滴从水果上掉落;
3. 水杯的接水滴实现。
标尺的控制
■ 原游戏玩法中,类似,按下屏幕显示标尺,松开标尺显示,水滴从标尺不同位置滴落到杯子中,得分是不同的。如下图,蓝色、黄色、白色,水滴从三处不同区域成功掉落到杯子中,得分依次减少。
■ 控制显示,只需要监听屏幕的触摸事件TOUCH_START、TOUCH_END、TOUCH_CANCEL,开始触摸时显示,取消触摸时隐藏,结束触摸时隐藏,并触发水滴掉落事件,以函数的形式驱动。
水滴掉落
■ 水果上的水滴和掉落的水滴,分开控制,因为掉落的水滴需要添加刚体,水果上的水滴需要随着父节点运动。
■ 随水果转动的水滴,就用普通精灵即可,控制显示的逻辑部分,也是控制这个精灵的显示和隐藏。
■ 掉落的水滴,单独做预制,需要添加物理组件,因为是不规则形状的,就选择 Polygon 物理碰撞组件,设置好碰撞边界。
■ 在触发掉落事件时,实例化一个水滴的节点,添加到和水果上运动节水滴精灵的相同位置,包括位置、旋转角度、父节点。也就是实例化的带刚体的水滴,运动的初始位置就是水果上的精灵当前位置。
■ 设置好初始位置后,就是控制水滴运动,根据当前转盘旋转的角度,即可计算出水滴运动的方向,只需要在质心施加一个力即可(为了保证和 Cocos Creator 2.1.4 中 angle 角度的一直,水滴的初始位置放到了右边,上述图中可以看出),使用 API 提供的 applyForceToCenter 施加力。
水杯的实现
■ 水杯可见部分,就是一张简单的纹理图片,只需要在水杯实体部分,添加上物理碰撞组件即可,普通的 BoxCollider 物理组件通过改变大小和旋转就能满足要求,大小和旋转根据杯子图片的实际显示,在编辑器中调整。下图是左边界的物理碰撞组件,右边界和底部的实现类似。