@IKYO
最近又看了一下这帖子……其实不需要“Mario踩斧之后仍可控制”来验证地形实质没有改变,只要不打死Boss踩斧子右边就可以了。
原理如下:
踩斧子时会执行这样几个过程:先删除斧子(这个是同时改变地形GFX和实质),再判断敌人内存中是否有Boss,然后删除所有敌人,最后如果之前判断有Boss则删除斧子和Boss桥(包括桥链)(这个删除只改变地形GFX,不改变实质,当然这一点就是现在需要验证的事情)。可以看到,“删除斧子”其实被执行了两次,但是这两次删除的实质是不同的。
而第一步的“删除斧子”可能存在这样一个问题,就是如果踩到斧子的右半边,就会错误地将斧子右边的一格地形删除,而斧子仍然会保留,这样就会发生“卡顿”的现象,实际上是“踩斧-删除斧子右边”这样一个循环被反复执行的结果。
那么,在有Boss的情况下踩斧子右半边,会发生什么呢?首先,会执行第一个“删除斧子”的过程,而结果则是保留斧子,删除斧子右边一格(这时可以注意到斧子不会立刻消失,而踩左半边斧子时,斧子是会立刻消失的);然后,再执行第二个“删除”过程,这时斧子才会消失,随后Boss桥也会跟着消失。这样,我们可以推断,如果第二个删除过程改变了地形实质,那么踩斧子右半边的卡顿现象就不会出现。但是,实际情况则是:虽然看不到斧子了,但是还是会卡顿(只是内存中的Boss已经被删除了,因此不会重复执行已经消失的Boss桥再次被删除的过程,只会短暂卡顿)。因此,我们可以得出结论,踩斧之后的删除Boss桥的过程不会改变地形实质,只会改变GFX。