いや、6でもインスタンスIDか-4(noone)を返すよ。 > All these functions return either the id of one of the instances that collide, > or they return a negative value when there is no collision. ここの説明は5から8までずっと変わっていない。 ただ、全体読まずに関数の説明だけ見てtrue/falseだと早とちりする人は多い。
ちなみにGMでは、0より大きい値は真、0かそれ以下の値は偽と解釈される。 if (A) は if (A > 0)、 if (!A) は if (A <= 0) と同じ意味。 >871のif文が期待どおり動くのはそういう理由。 これを if (collision_line(...) == true) と直接true/falseと比較してしまうと動かなくなる。