求助! GML step事件里,我的角色小人如果按A或D键就会左右行走,不按AD时就站立。站立和行走是两个不同的sprite。下面第一张图片是正确的代码,第二张是问题代码。
问题代码执行的结果是按着方向键行走时sprite在行走图和别的sprite之间不停切换,导致角色闪啊闪的。 后来发现问题是红圈里的代码位置放错了。
但是我不明白的是,GML每一步里不是先从上到下运行完代码,然后再把最终结果画到屏幕上吗?如果是那样的话,虽然每一步开始的时候sprite_index赋值为站立图,但是只要按着方向键就会变成行走图,那么最终计算结果不还是行走图吗,画出来也是行走图吗。那为什么会还会出现这种情况呢?
换句话说,问题的关键是:第二张图里,红圈代码和下面的if是否存在顺序问题?计算机是依次计算赋值,以最后的为准?还是说sprite_index在红圈处和if块里分别出现了两个赋值所以计算机不知道该听谁的?


问题代码执行的结果是按着方向键行走时sprite在行走图和别的sprite之间不停切换,导致角色闪啊闪的。 后来发现问题是红圈里的代码位置放错了。
但是我不明白的是,GML每一步里不是先从上到下运行完代码,然后再把最终结果画到屏幕上吗?如果是那样的话,虽然每一步开始的时候sprite_index赋值为站立图,但是只要按着方向键就会变成行走图,那么最终计算结果不还是行走图吗,画出来也是行走图吗。那为什么会还会出现这种情况呢?
换句话说,问题的关键是:第二张图里,红圈代码和下面的if是否存在顺序问题?计算机是依次计算赋值,以最后的为准?还是说sprite_index在红圈处和if块里分别出现了两个赋值所以计算机不知道该听谁的?

