gamemaker吧 关注:13,584贴子:94,407
  • 12回复贴,共1

GMS2的object顺序会对程序运行造成影响?

只看楼主收藏回复

发生了一些事,处理了一个蜜汁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的顺序还对程序运行有影响么?


1楼2017-12-02 23:28回复
    哦对,顺便一提,我还尝试过把两个房间顺序对调,先运行room2。一样问我要room1的这个obj。
    我还试着把room1删了,试着把obj_start2删了。然后报错问我要room1里正序的下一个object。然后我才想到是不是把所有object顺序颠倒过来就好了。结果就好了……
    还有就是,这个room2在开始写room1之前怎么暴力测试都没有bug嗯。


    3楼2017-12-02 23:32
    回复
      看来有些gms1的bug到gms2还没完全修复诶。。原来gms1.3的时候也有类似,当时是有时候房间顺序和资源树里不一样,清空了一下临时文件完全重新编译就好了。如果是类似的bug,你现在把两组obj顺序换回来大概也没什么问题。


      IP属地:上海来自Android客户端4楼2017-12-03 09:42
      收起回复

        另外doge说的清空临时文件是这个
        反正遇到什么奇怪的bug就试着清一下缓存


        6楼2017-12-03 16:08
        收起回复
          补回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顺序有关,你可以自己实验一下


          7楼2017-12-03 20:04
          收起回复