unity3d-学习笔记17-卡牌游戏制作
实现“2”号卡的功能(毒伤)
需求
当场上出现这张卡的时候,可以打出,打出之后,在规定的回合内,每回合都会对boss造成固定的伤害,规定回合之后效果消失
实现
①在回合类里添加一个静态变量,作为记录回合数的值,每点击一下回合类所在的按键,则++;
②在桌面类的update方法里实时刷新每张卡打出来的类型,如果出现了“2”号卡,则调用持续扣血的方法,这个方法的实现逻辑是在方法里创建一个静态变量用来记录当前回合数(也即是把这张卡打出去的回合)
③在回合类点击事件的方法里创建如下逻辑,每点击一下,则获得当前回合数和“2”号卡打出去的回合数,如果之间小于规定的回合数,则每点击一下给boss扣血,直到超出规定的回合数
代码如下
实现“3”号卡功能(给类型为“0”的卡增伤)
“0”卡在前面的帖子里有写,这里就不多说了
逻辑
当“3”卡打出的时候,遍历游戏界面里出现的所有卡,根据他们的transform属性遍历他们的子类,获得每个“0”卡里的伤害值,并对他重现赋值
恢复:当“0”卡被打出之后,还需要把他的伤害值重置回一开始的状态,只需要在卡打出的时候,获得他当前的伤害值的text,然后根据这张卡的id(上一篇有说)找到这张卡在cardList集合里的索引,根据索引找到这张卡,把这张卡的伤害重置到当前这张卡伤害值的text里即可
实现
如上,对卡类先进行判定,如果是“3”号卡则进入增伤的方法里
遍历桌上存放卡类的父级,然后进行判断,找到所有“0”卡,对其伤害值的text进行修改
然后在卡打出去后重置卡原来的伤害值即可
总结:一个字,爽,一次性把23号卡的功能实现了,过程有一些小bug无伤大雅,很快就解决了~
现在是真的一点教程没看,依照自己的逻辑在敲的代码(持续膨胀),当然,过程中对很多知识有了更深的理解,静态变量确实好用,各脚本之间的调用也让我的逻辑感增加了不少。加油
未完成的功能
添加战斗结束的判定和界面
把战斗的界面统一到所有需要战斗的事件里
添加除战斗界面的其他事件界面
boss简单的攻击模式(也要能打出卡的)
ui,原画等精细优化