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
SZEROX
哈?也就是说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
SZEROX
OH太可怕了……不过像我这些同屏实例总数在200以下的应该不会发生这现象吧
2010年07月28日 08点07分
6
level 11
franniss
楼主
你不需要知道临界条件是多少
你只需要知道临界条件不发生的时候是多少。
2010年07月28日 08点07分
8
level 6
poroksy
不发生的条件么,我试过的最多同时消弹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
彼絲可
那太好拉~~
看GML帮助上写“ID每一步都会改变,所以你不能用上一步的ID”......误导人咯.害我担心了半天喵......
2010年07月28日 08点07分
11
level 6
poroksy
回复:10楼
刚想了想用全局变量管理,这办法code上更干净,就是要涉及外部资源了。
2010年07月28日 08点07分
12
level 13
cies
最重要的是!遇见这种情况你游戏已经快崩溃了哦,除非你想模拟黑洞生成!否则不要玩奇怪地东西
2010年07月28日 08点07分
13
level 11
franniss
楼主
回复:12楼
嗯 朝外部发展好。
做多大的游戏都很绿色低碳。
2010年07月28日 08点07分
14
level 7
冰凌血翼origin
貌似GM的实例ID是从100000开始编的
2010年07月28日 11点07分
15
1