Hello friends! I have a question - the following line:

        tracker = clamp(++tracker ,0 ,(array_length(enemies)-1));

它也可以写成

        tracker = clamp(tracker+1 ,0 ,(array_length(enemies)-1));

如果是这样写:

        tracker = clamp(tracker++ ,0 ,(array_length(enemies)-1));

则不工作。

有人知道原因吗?!区别是什么?!

// 在 create 中
enemies[0,0] = objEnemy1;
enemies[0,1] = 5;
enemies[1,0] = objEnemy2;
enemies[1,1] = 5;
tracker = 0;

// 在 alarm 中
tracker = clamp(++tracker ,0 ,(array_length(enemies)-1));

所以它会变成 enemies[tracker,1] 的意思。

我的意思是,我有一个二维数组 enemies[0,0]、enemies[0,1] 等等,在 0,1 位置存储计数 5,当这个计数 5 归零时,我会把 tracker(实际上是数组的第一位置)移动到位置 1,0,然后开始监视 1,1 并对其进行减法。然而我也想让 tracker 被 clamp,确保它始终在范围内。但当使用 tracker++ 时,它并没有递增。

我还注意到,当使用变量_x --; 而不是 ++ 时,同样的奇怪行为出现。

加法运行得比较正常,减法有时会出现奇怪的结果。

祝编程愉快!