关于通过比较位置选中的多个精灵实例啊?
-
通过“比较位置”选中了不止一个精灵实例,然后要如何才能获得每一个实例的值?
比如有一组精灵实例,每个实例的动画帧不同,然后通过:
[数字精灵] 如果X坐标=鼠标X Y坐标=鼠标Y
获得鼠标点击位置有3个实例,这3个实例分别是动画帧1、3、5。
我在上面这句之后用
[系统] 选中数字精灵的第N个实例,但好像返回的是错误的实例。
-
@ZZommy 系统内的选中第N个实例的含义是通过IID,其含义在官方手册中有写↓
IID
IID是选中实例在该对象在场景中的创建顺序编号。 预览游戏时,在调试界面下选中该实例即可看到IID。
与UID不同的是,IID并不是独一无二的。 对象A和对象B可以同时拥有IID为1的实例。 并且,当某一个实例被销毁后,其他实例的IID也会根据当前顺序进行变化。
反应在预览界面中,第N个实例就是左侧实例列表中的第N个
回到问题本身,首先有一个地方,就是精灵的x、y坐标只是一个点,而你可能想要实现的效果是“鼠标的坐标上覆盖了精灵”,因此这个比较精灵位置的写法本身会存在问题(这么写的话只有鼠标精准地位于这一个点上才会触发);
然后我稍微验证了一下思路,如果要分别获取每个实例的变量,那么同一时间只能选中一个实例,否则将不会返回任何值;
因此,实际逻辑可以是:先逐个实例选中,再判断是否有覆盖鼠标,然后返回对应的变量。
事件写法的话,这里的排序遍历循环也可以换成遍历循环,只不过加一个排序的话更容易获得好看的结果(也可能会方便数据处理)
实际效果如下:(不知道动图能不能看到)
-
非常感谢!很清晰详细的解答
我马上来试试