「自制卡牌游戏DIY」战斗出卡逻辑(1)

09/2162 浏览主题教程
我正在用『星火编辑器』将一张卡牌变成一款卡牌游戏。
在前几期中,我们设计并完善了战斗抽卡系统,使得游戏能以符合玩家体验的方式,在战斗阶段中为玩家刷出呈现各具效果的卡牌——我们正在一步步为这款卡牌游戏搭建肉体、铸造灵魂。然而,玩家选择及打出卡牌的逻辑同样重要,今天我们就要对这一部分的功能搭建发起冲锋。
在前面我们已经在客户端逻辑中为场上的卡牌写好了点击事件(P2),那么我们直接来到服务端触发器,创建选中卡牌的触发器,而它的触发事件正是前面这个点击事件。根据客户端发来的卡牌索引,我们在局部变量中即可取到我们具体点击的卡牌。接着,我们根据卡牌的不同状态,来对玩家点击卡牌的事件做出响应。首先是“未抽取”状态,既然卡牌都已经被抽到场上了,怎么可能还会是“未抽取”呢?这种情况不合预期,说明出bug了,发一条报错log(P3)
另一种情况是玩家选中了一张还未被选中的卡牌。这时要注意,首先需要做的不是将这张卡牌选中,而是遍历全部4张卡牌,将其他已选中的卡牌取消选中(例如在卡牌2选中时你点了卡牌4,此时玩家想要的体验是在取消选中卡牌2的同时选中卡牌4)。当其他卡牌都处于还没被选中的状态时,将玩家点击的这张卡由未选中变为选中(P4)
还有一种情况是玩家选中了一张已经选中的卡牌。玩家再次点击已选中的卡牌而未将其打出,需要的体验是取消选中。那么我们只需发送取消卡牌选中的事件即可。这里的每种情况都要记得修改卡牌的状态。至于卡牌状态的其他情况,按照逻辑,场上卡牌不应处于还在场下的卡牌状态,所以输出错误日志即可(P5)
当玩家选中一张部队卡时,要做的是往场上放怪。但并不是场上所有区域都能放怪,即便在热门游戏《皇x战争》也不行。因此,可以给玩家提供一个如P6的区域指示器指示玩家可放怪的区域。那么,在数据编辑器里找到表现,创建表现,根据玩家需要设置指示器缩放即可添加表现(P7)
回到客户端,在生成己方放怪区域方法中创建相应表现,然后设置其所属玩家并播放它。接着在需要想要保存的单位身上保存该表现即可(P8)
同样的,销毁己方放怪区域就是将刚才保存的表现进行强制摧毁。当玩家选中部队卡时,显示放怪区域;取消选中时,销毁放怪区域,这样体验就很nice了(P9)
游戏制作分享&教程系列《自制卡牌游戏DIY》第30期撒花🎉,感谢所有支持的小伙伴!欢迎大家体验使用『星火编辑器』做游戏,无需会程序or美术,超酷的!
TapTap
TapTap
TapTap
TapTap
TapTap
TapTap
TapTap
TapTap
TapTap
3
1