instance 在游戏中 id 可能会发生改变的原理
gamemaker吧
全部回复
仅看楼主
level 11
franniss 楼主

instance 的 id 并不是一个局部变量,并不是赋予 instance 的固定数值。
但是它在同一时刻都有唯一的值。
instance 的 id 返回的,是一个你看不到的数据结构的索引。
instance_count() instance_number() 等快捷查找运算,都是该数据结构的功劳。
当此数据结构满足一些临界条件(比如 instance 过多的创建销毁),id 就会发生与上一帧不同的现象,但它仍旧是唯一的。
2010年07月28日 08点07分 1
level 8
[汗]哈?也就是说instance过多的创建销毁过程时,先前把某实例的ID赋予的某变量反过来指向的实例可能变成不存在?
2010年07月28日 08点07分 2
level 11
franniss 楼主
[茶杯]是的~
2010年07月28日 08点07分 3
level 11
franniss 楼主
[茶杯]一般是碰不到的。
但是知道一下比较好。
2010年07月28日 08点07分 5
level 8
[汗]OH太可怕了……不过像我这些同屏实例总数在200以下的应该不会发生这现象吧
2010年07月28日 08点07分 6
level 11
franniss 楼主
[茶杯]你不需要知道临界条件是多少
你只需要知道临界条件不发生的时候是多少。
2010年07月28日 08点07分 8
level 6
不发生的条件么,我试过的最多同时消弹500吧。
条件具体先不谈,如果不能使用id引用的话,有多个零件的敌人(不唯一)该怎么做呢。
2010年07月28日 08点07分 9
level 11
franniss 楼主
[茶杯]制作多部件一个比较合适的方法是:
part[6] = object_add()
object内容外部读取文本。
使用完毕循环释放 object_delete( part[i] )
2010年07月28日 08点07分 10
level 6
[Yeah]那太好拉~~
看GML帮助上写“ID每一步都会改变,所以你不能用上一步的ID”......误导人咯.害我担心了半天喵......
2010年07月28日 08点07分 11
level 6
回复:10楼
刚想了想用全局变量管理,这办法code上更干净,就是要涉及外部资源了。
2010年07月28日 08点07分 12
level 13
最重要的是!遇见这种情况你游戏已经快崩溃了哦,除非你想模拟黑洞生成!否则不要玩奇怪地东西
2010年07月28日 08点07分 13
level 11
franniss 楼主
回复:12楼
[茶杯]嗯 朝外部发展好。
做多大的游戏都很绿色低碳。
2010年07月28日 08点07分 14
level 7
貌似GM的实例ID是从100000开始编的
2010年07月28日 11点07分 15
1