有点像支付宝叠货箱游戏,用Cocos Creator 3D试试!
想要什么样的效果?
游戏想要的效果是,上方有方块移动,点击屏幕,方块从上方掉落,掉落在地面上,如果成功叠加到上一层,则成功加盖一层楼,否则失败。最终,根据盖的层数确定最终得分。不过支付宝的那个,是左右摆动的,下次我也试试左右摆动的效果。
方块左右移动怎么做?
每个方块,做成一个预制体,方便动态创建方块。方块添加刚体和碰撞体,同时添加方块控制逻辑。
方块逻辑BoxCtrl添加运动方向和运动偏移量变量,方向向左时,位置递增,方向向右时,位置递减,当往左或往右到达最大偏移量时,改变运动方向,位置偏移量向相反方向变化。
掉落怎么做呢?
为了方便控制所有盒子,盒子的控制单元独立出来,使用BoxMgr控制,挂在到一个空节点上。BoxMgr每次生成盒子,取消重力,在BoxMgr内监听点击事件,并记录当前上方的盒子,如果点击时,当前上方的盒子,正在做左右运动,则开启重力,盒子自然掉落,盒子掉落停止运动以后,回调到控制单元来,进行游戏状态的逻辑控制。
怎么知道盒子停下来了?
盒子运动以后,是有速度的,通过判断线性速度和旋转速度,如果都为0,那盒子肯定是停下来了,直接在update里判断两个向量的长度,就可以判定盒子是不是停下来了,停下来以后,就不用再每帧去判断了。
怎么判断是成功还是失败?
盒子开始碰撞以后,记录状态,如果碰到了地面,则标记为失败,更新游戏状态,当盒子停下来的时候,根据游戏状态回到到控制单元,成功失败标志传到控制单元内。
往期精选
扫描二维码
获取更多精彩
一枚小工
让我知道你在看