看了B老师@blovestorm
的文章
【论GameMakerStudio对象实例的执行顺序】
http://blog.sina.com.cn/s/blog_c4f9d4230102v9no.html
在实际操作过程中发现了一些问题,也就是在不断解散激活实例的过程中发生了一些问题
实例的事件并没有按照我的ID大小执行
新建两个对象,并在房间内放置多个实例,左侧数字为instance_id的所有元素
instance_id为一个全局数组,储存着游戏内所有实例的id
然后随机解散其中的一些实例并重新激活
将instance_id的所有元素以顺序形式绘制出来,发现实例id被打乱
中间的测试过程省略,根据测试发现,非draw事件的运行顺序和实例的id无关,和object_index与instance_id有关
- object_index越小的实例,事件执行越早
- 如果object_index一样,则根据instance_id的顺序执行
所以我个人认为gms的房间编辑器中,instance order顺序也是如此,object_index小的,排列顺序靠前,如果object_index一样,则在instance_id中靠前的实例,排列顺序靠前
2016-02-25 更新:如何在多个同深度实例重叠时,鼠标选取绘制在上层的实例
http://pan.baidu.com/s/1pKjdXrl
之前由于实例事件执行顺序理解不通,走了许多弯路(http://tieba.baidu.com/p/4372501528)
用了实例解散,碰撞检测等,把重叠实例id都写进列表,写了二三十行代码才达到的效果,现在用了三四行就写出来了,个人感觉效果不错,特来分享下