我不想对一般对象做出动作 我有8个实例,例如(0,1,2,3,4,5,6,7) 我需要对2,5进行操作只有7例如 怎么样?如何针对某些对象实例执行操作?
回答
这让我很困惑,关于来自软件工程背景的Construct 2。
选择要生效的Sprite的哪些实例有点像过滤数据库。您从列表中的所有实例开始,然后使用条件过滤它们。如有可能,构造2会自动猜测您想要哪个实例。 (就像你刚刚在EnemySpawn产生了敌人,它会知道你的下一个参考敌人只是最后一个创建的敌人)。
这神奇地运行的大部分时间,但你可以选择一组对象与其中的几个条件:
比较实例变量 比较对象的实例变量之一的当前值。
是布尔实例变量集 测试对象的布尔实例变量之一是否设置为true。 (倒置如果假要测试的条件。)通过唯一ID(UID)
皮克拾取实例匹配给定的唯一ID(UID)号。
根据我的经验,添加一个实例变量并将其设置为跟踪Sprites的子集或Sprite的状态是将动作限制为特定的一组Sprite的最简单方法。
也Object Expressions请参阅从Scirra手册:
您可以添加基于0对象索引得到,不同对象实例的表达式。例如,Sprite(0).X获取第一个Sprite实例的X位置,而Sprite(1).X获取第二个实例的X位置。有关更多信息,请参阅常见功能中的索引ID(IID)。您也可以传递索引的另一个表达式。负数从另一端开始,所以Sprite(-1).X得到最后一个Sprite的X位置。
这些不是“特定的”对象ID(构造2称它们为索引ID或IID),但是按照它们创建的顺序引用该类型的所有对象。
所以:
Enemy(0)
是第一
Enemy(-1)
是最近
Enemy(5)
是创建的第六届敌人,无视摧毁精灵(见下图)。
但是你必须记住,如果你销毁一个IID为3的对象,那么它后面的所有对象都将在列表中移动,它们的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|
希望这些方法可以帮助你得到你所需要的!
- 1. 如何根据instanceof对某个对象执行操作?
- 2. 执行实例对象
- 3. 如何在字符串在对象中时执行某些操作?
- 4. 无法对对象执行操作
- 5. 空JavaScript函数如何实际执行某些操作?
- 6. Django,针对模型的每个实例执行操作的最佳实践
- 7. 针对ESB操作的条件执行
- 8. 如何让对象在执行时可用于作业实例?
- 9. wrirting XSL对XML数据执行某些操作
- 10. 只对某些页面执行jQuery效果/操作
- 11. Jmeter中可能对线程故障执行某些操作吗?
- 12. 如何仅对点击QMenu对象执行操作?
- 13. 如何对两个jQuery对象执行操作?
- 14. 滚动以达到Dom对象位置,然后执行某些操作
- 15. C#在执行某些操作之前检查COM对象是否可用
- 16. Rails回形针:在保存附件后执行某些操作
- 17. 在.Net中,如何针对实例执行SQL Server脚本?
- 18. 由我的ViewControllers实例创建的UITableViewCell实例如何告诉ViewController执行某些操作?
- 19. startActivity完成后执行某些操作
- 20. 如何对两个文件执行某种EXCEPT操作?
- 21. Ansible EC2 - 对一组实例执行操作
- 22. 对MongoDB实例中的每个文档执行操作
- 23. ansible创建gce实例,然后对其执行操作
- 24. 针对某些操作的高效文件系统API
- 25. 如何在Unity3d中运行进程时执行某些操作
- 26. 如何对JOptionPane.showMessageDialog的OK执行操作
- 27. 如何对post_save执行操作?
- 28. 如何对点击的imageview执行一些操作?
- 29. Nodejs读取某些进程的stdout并执行某些操作
- 30. 如何执行另一个对象实例化对象(依赖于它)在C++