「自制卡牌游戏DIY」自动生成卡牌(2)
修改于07/2771 浏览主题教程
我正在尝试用『星火编辑器』制作一款卡牌游戏。
经过前面的努力,我们已经可以做出卡牌,做出卡牌包,并且在服务端构建了卡牌属性信息。为了让每个玩家都有自己的卡包,我们还需要建立一个玩家类(“类”的概念上一期有讲),并在玩家类中创建一个数组*,用于存放玩家的卡牌,而数组的每个元素都是一张“标准卡牌”(P2)
/*科普-数组:数组是多个相同类型的数据按一定顺序排列,其中的每个数据称为“元素”,而数组中的元素位于数组的位序编号称为“下标”。数组的第一个元素下标为0,第二个下标为1,第n个下标为n-1,依次类推。通过数组的下标,可以取到数组中的元素,格式为“数组名[下标]”,例如某数值类型数组[5,7,2,-1,9]名为"AA",则其中AA[3]的值为-1。此外还可删除、修改数组中的元素或插入新元素*/
为了在服务器上存储所有玩家的信息,我们建立一个名为“所有玩家信息”的简单表。它的键就是玩家编号,值就是该编号所对应的“玩家信息”(P3)
目前玩家的标准卡牌数组里并没有元素,那么我们新建一个方法用于生成玩家初始的卡牌,让服务器“送给”玩家一些卡。在方法中建立一个代表进入玩家的参数,这样在局部变量中就可以取到该玩家的编号,从而在简单表“所有玩家信息”中精准调用这个方法的玩家来执行下面的“送卡”动作。
通过循环遍历上一期中建立的卡牌模板数组,我们将数组中“是否初始赠送”标记为True的元素”摘”出来,将其添加到玩家信息的“已有卡牌”中(P4)
但现在的问题是,送给玩家的卡牌信息数组未经过整理,是杂乱无章的。这就需要新建一个用于整理卡牌的方法。这里要用到一个比较函数。
/*科普-比较函数:输入两个比较参数,分别代表数组中两个需要比较的元素。指定比较的条件,在条件下返回一个返回值,若返回值大于等于0则参数1元素排在前,否则则参数2元素排在前。遍历数组并进行两两比较+排序,即可按指定的条件排序整个数组*/
这里我选择优先按卡牌类型进行先后排序,其次按卡牌等级,最后按卡牌费用(P5)
将已有卡牌信息的数组整理整齐后,还要将这些卡牌信息转成简单表从服务端发给玩家客户端,用于在对应玩家客户端上更新和显示卡牌UI (P6)
最后在服务端触发器调用这些函数,此功能的服务端部分就暂告一段落了。下一期将会继续分享此功能的客户端部分,谢谢大家点赞支持