如何实现同一个Object的不同instance?
mooncake
2019-02-14
想做一个类似炉石的卡牌游戏,期初就想用一个Sprite来做所有卡牌,但是发现这样虽然可以达到换不同卡牌牌面图案的功能,但是在实现点击卡牌,触发卡牌里面的魔法效果的时候,或者判断卡牌有没有被点击过的时候就好像有点问题,因为C2里面生成的Instance好像都是统一改变它的变量。请问如果我游戏里面有100张卡牌,每张卡牌都有好几个不同的属性,是否要做100个不同的Sprite来实现?还是有其他比较好的实现方案?谢谢
mooncake 建议先熟悉一下Construct里选择实例的基础功能再做复杂的东西。
几种常用的选择方式(选中了就可以改变资源改变变量):
1 创建后会自动选中当前的实例,这个时候可以做各种操作
2 用click,touch等方式,甚至物体碰撞等方式可以获取到接触目标,同时也会选中
3 用UID,每个实例都有自己的uid,可以通过uid去做选择
4 pick物体,pick all可以选中所有的,pick by可以设定条件,你可以选择所有符合条件的,也可以直接选择符合uid的实例
5 for each,用于循环选择物体,下级判断当前选择的物体是否符合就能做操作
总的来说基本都需要你在创建物体的时候做一些简单的赋值。比如你的卡牌创建的时候,可以把这个卡牌对应的一些特征变量赋给这个实例,之后就可以用这些特征去筛选了。例如pick符合5费 and 攻3的牌
mooncake 用一个sprite就行,UID来判断是哪张牌