Html 如何对对象的某些实例执行操作?

Html 如何对对象的某些实例执行操作?,html,construct-2,Html,Construct 2,我一般不想对这个对象采取行动 例如,我有8个实例(0,1,2,3,4,5,6,7) 例如,我只需要在2、5和7上进行操作 如何???对于来自软件工程背景的构造2,这确实让我感到困惑 选择要影响的精灵实例有点像过滤数据库。从列表中的所有实例开始,然后使用条件过滤掉它们。如果可能,构造2将自动猜测您想要哪个实例。(比如,如果你刚刚在EnemySpawn生成了敌人,它会知道你的下一个参考敌人只是最后一个被创建的敌人) 这在大多数情况下都能神奇地工作,但您可以选择一组具有以下几个条件的对象: 比较实例变

我一般不想对这个对象采取行动 例如,我有8个实例(0,1,2,3,4,5,6,7) 例如,我只需要在2、5和7上进行操作
如何???

对于来自软件工程背景的构造2,这确实让我感到困惑

选择要影响的精灵实例有点像过滤数据库。从列表中的所有实例开始,然后使用条件过滤掉它们。如果可能,构造2将自动猜测您想要哪个实例。(比如,如果你刚刚在EnemySpawn生成了敌人,它会知道你的下一个参考敌人只是最后一个被创建的敌人)

这在大多数情况下都能神奇地工作,但您可以选择一组具有以下几个条件的对象:

比较实例变量 比较对象实例变量之一的当前值

是布尔实例变量集 测试对象的布尔实例变量之一是否设置为true。(如果为假,则反转条件进行测试。)

按唯一ID(UID)拾取 选择与给定唯一ID(UID)号匹配的实例

根据我的经验,添加一个实例变量并将其设置为跟踪精灵的子集或精灵的状态是将操作限制到特定精灵组的最干净的方法

另请参见Scirra手册:

可以添加基于0的对象索引以从不同的对象实例获取表达式。例如,Sprite(0).X获取第一个Sprite实例的X位置,Sprite(1).X获取第二个实例的X位置。有关更多信息,请参阅通用功能中的索引ID(IID)。还可以为索引传递另一个表达式。负数从另一端开始,因此Sprite(-1).X获取最后一个Sprite的X位置

这些不是“特定”的对象ID(构造2称之为索引ID或IID),而是按照创建顺序引用该类型的所有对象

所以:
敌人(0)
是第一个
敌人(-1)
是最近的
敌人(5)
是第六个创建的敌人,忽略被摧毁的精灵(见下文)

但是你必须记住,如果你用IID3销毁一个对象,那么它之后的所有对象都会在列表中移动,它们的IID会减少1。(类似于LinkedList数据结构)

如果您销毁实例D,其他实例将发生移动

Instance |A|B|C|D|E|F|     -->     |A|B|C|E|F| 
IID      |0|1|2|3|4|5|     -->     |0|1|2|3|4|
希望这些方法中的一种能帮助你得到你需要的