羊了个羊P7 洗牌功能
羊了个羊Scratch开发——第七集
本集主要实现了洗牌功能。
角色状态的处理,切换和广播同样和前两集中一样,复制过来稍作修改即可。

洗牌道具的使用逻辑为点击后先将卡牌聚集到一处,然后打乱所有卡牌的顺序后回到原来的位置。我们希望加入洗牌的卡片中不应包含已经进入选择框中的卡片,所以我们在洗牌之前筛选一下范围,要求已选择卡片位置为0的卡片进入洗牌。因为进入选择框的卡片的已选择卡片位置为别的数目。

洗牌后回到原来位置的代码可以从初始化中的代码复制过去。

不过这样的洗牌会有个问题,已经选择的卡片在洗牌后有可能无法凑三的倍数消除,导致游戏无法胜利。我们需要记录一下当前洗牌的所有卡片的类型,让它们在生成时不作改变。在卡片向屏幕中心移动时,把卡片的造型数量加回之前初始化时使用的卡片类型数量,这样在后续的刷新时保证刷新的总数量是不变的。
测试时发现这种方式依然有问题,有一种卡片种类会比正常数据多一个。原因是初始化使用的卡片虽然隐藏了但也收到了这条广播,并且被计算了。解决这个问题的方法是把这张初始化卡片的已选择卡片位置设置为特殊的空,克隆后参与游戏的卡片再次将这个变量初始化为0,这样初始化使用的卡片的种类就不会重复计算了。

在卡片洗牌结束后,按照每张卡片的卡片编号,令它们返回原本的坐标和层数。

总结
本集中我们完成了洗牌功能,这个系列也暂时告一段落了。在本系列课程中,我们完成了羊了个羊的游戏机制和道具功能,创建了一个可以游玩的关卡。整个系列的学习中我们学习到了角色创建,造型改变,移动和动画处理等等知识。关于之后的创作方向可以关注以下几个方面:
- 处理道具部分的一些影响游戏游玩的问题
- 多个不同关卡的制作
- 主界面,得分等UI
- 积分排行榜等新功能

浙公网安备 33010602011771号