gmstudio吧 关注:953贴子:3,564
  • 7回复贴,共1

求助,关于代码运行逻辑

只看楼主收藏回复

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



IP属地:河北1楼2017-08-10 22:04回复
    已解决,研究debug发现了背后的原理。


    IP属地:河北来自iPhone客户端2楼2017-08-11 13:40
    回复
      貌似BloveStorm大大有一个事件程序运行顺序表的,你可以去看一看


      IP属地:江西来自手机贴吧3楼2017-08-11 18:50
      回复
        貌似BloveStorm大大有一个事件程序运行顺序表的,你可以去看一看


        IP属地:江西来自手机贴吧4楼2017-08-11 18:50
        收起回复
          是什么原因呢?


          IP属地:安徽5楼2017-08-27 00:34
          收起回复