GMS2的object顺序会对程序运行造成影响?
gamemaker吧
全部回复
仅看楼主
level 1
izayoisakuya 楼主
发生了一些事,处理了一个蜜汁bug之后我产生了如上疑问……
我试试能不能解释清楚发生了啥。
问题是这样的:
我先在room2当中写了和战斗有关的一些代码。然后我去写前一个room(room1)的代码。
我把两个房间顺着跑了一下的时候,进入room2的时候他突然说找不到“在room1里用的某个object”的实例。
我查了半天代码,和room2有关的代码都没写过和room1有关的东西,包括上述object或实例。
最后鼓捣了会儿,结果我把所有room2的obj和room1的obj在gamemaker的列表里对调了下位置就好了。
FATAL ERROR in
action number 1
of Create Event
for object obj_monster_1:
Unable to find any instance for object index '0' name 'obj_start2'
at gml_Object_obj_monster_1_Create_0 (line 4) - temp2.Enemyjudg=0
这是报错记录,obj_start2是room1里用到的object,obj_monster_1是room2里的。
总之这个问题过后我觉得……虽然问题算是通过交换顺序解决了,但我知道,发生了啥?GMS2的object的顺序还对程序运行有影响么?
2017年12月02日 15点12分 1
level 1
izayoisakuya 楼主
哦对,顺便一提,我还尝试过把两个房间顺序对调,先运行room2。一样问我要room1的这个obj。
我还试着把room1删了,试着把obj_start2删了。然后报错问我要room1里正序的下一个object。然后我才想到是不是把所有object顺序颠倒过来就好了。结果就好了……
还有就是,这个room2在开始写room1之前怎么暴力测试都没有bug嗯。
2017年12月02日 15点12分 3
level 15
看来有些gms1的bug到gms2还没完全修复诶。。原来gms1.3的时候也有类似,当时是有时候房间顺序和资源树里不一样,清空了一下临时文件完全重新编译就好了。如果是类似的bug,你现在把两组obj顺序换回来大概也没什么问题。
2017年12月03日 01点12分 4
-0-!那我试试看……不过我没太懂,清空临时文件是指……windows里的垃圾文件吗?完全重新编译是指那之后打开工程跑程序?/w\萌新一只
2017年12月03日 02点12分
@izayoisakuya 就是gms1的运行按钮旁边有个clear build按钮,gms2我不知道
2017年12月03日 08点12分
@sunyubokkkkk 感谢~我试试看w
2017年12月03日 09点12分
level 9
另外doge说的清空临时文件是这个
反正遇到什么奇怪的bug就试着清一下缓存
2017年12月03日 08点12分 6
当然你现在的这个问题和缓存无关
2017年12月03日 08点12分
@微子喵 谢谢~姑且试一下这个然后想想怎么调整上面你说的那个=w=
2017年12月03日 09点12分
哎?……我可能不小心点错了OTL刚自己回复给你的帖子没写好,可能不小心把你的回复给删了,真的对不起qwq。然后我想接着问一下……有关object_index的事我以前没怎么关注过。刚看了看大概懂是什么东西了,请问这个名字需要经常自己设置吗?有没有什么科学的命名习惯?
2017年12月03日 10点12分
额……还是说这个index是不能被修改的呀……我在试着把 temp2.Enemyjudg=0 去掉,但这玩意当时是用来解决另一个比较麻烦的bug用的233
2017年12月03日 10点12分
level 9
补回4L的:
at gml_Object_obj_monster_1_Create_0 (line 4) - temp2.Enemyjudg=0
请问这一行的temp2是0吗?可能是obj_start2的index值也是0,跟这个变量产生冲突了,脚本解释器把temp2误认为obj_start2?
object_index应该是GM自己内定钦点的编号,可能真的是object顺序有关,你可以自己实验一下
2017年12月03日 12点12分 7
好~感谢www
2017年12月03日 13点12分
1