gamemaker吧 关注:13,690贴子:95,838
  • 28回复贴,共1

求大佬解答GM8一个时钟问题。我的这个时钟的动作不知道为啥就

只看楼主收藏回复

求大佬解答GM8一个时钟问题。我的这个时钟的动作不知道为啥就是不触发。mu是木头数量,muwoker是伐木工人数,两个都是全局变量。30步增加一次木头,但是运行后木头始终为0。而且实例也显示不出来




来自Android客户端1楼2019-06-11 16:14回复
    变量有三种状况:
    用var name定义的——临时变量,只在代码块中有效
    未用定义的——局部变量,在实例中存储
    以global.name形式引用的——全局变量,一次运行在整个游戏中都有效
    前面加global的才是全局变量,您这里的mu和muworker都只是该实例的局部变量。而创建事件中n是临时变量,因此没有对后面Draw事件中的n(局部变量)产生任何影响。
    另外,role_x、role_y是什么?


    IP属地:北京2楼2019-06-11 19:13
    收起回复
      2025-12-30 02:06:36
      广告
      不感兴趣
      开通SVIP免广告





      来自Android客户端3楼2019-06-11 20:42
      回复
        家里电脑没网,手机usb最近电脑识别异常,只好手机拍,大佬见谅。我就学过点C,可能写的东西很糟糕


        来自Android客户端4楼2019-06-11 20:44
        收起回复
          看了楼主所发的“截”图,发现了问题。
          可能是您习惯了C的写法,所以弄了个globalvar和一大串变量名,以为这样可以成为全局变量,但实际上这种写法在GM里面是不能达到目的的。
          在GML里面使用一个变量名时,如果没有任何前导,就只能表示临时变量或局部变量。于是,前面那一堆定义都给了执行事件的这个实例,成了它的局部变量。后面的使用部分,也只会影响这些实例。
          要使用全局变量,应该写成像下面的形式:
          赋值时,global.<name> = <value>
          引用时,<localname> = global.<name>


          IP属地:北京5楼2019-06-11 21:03
          收起回复
            跟商人对话的这个功能,商人不动就直接在她的绘制事件里面把文字绘制出来,再加一个绘制自己。主角因为会动,就把“我最帅”拿出来用别的实例绘制,然后让文字跟随主角就行了。根据大佬们的回答我明白了绘制文字会遮盖原实例精灵图的问题了,谢谢




            来自Android客户端7楼2019-06-12 12:43
            回复
              我再用手机摄像头“截屏”,我就是小狗🐶!!!


              来自Android客户端8楼2019-06-12 12:45
              回复
                楼楼的问题似乎上面都解答了。。给个自己的个人意见吧。写游戏尽量别用alarm,个人觉得这个东西极其难用,游戏一个object我记得是给12个小钟表?但是多了之后,自己都记不清楚哪个表是管哪个的。。感觉完全不如自己弄一个变量,然后变量自减。然后。。gm里面需要什么变量直接赋值就能用了,var是临时变量呢。对对,另外还有个建议。。不伦不类的变量命名,远远没有用拼音实在,中国人不习惯英文的话,拼音就好,驼峰命名法?是这么叫的吧,挺好用


                9楼2019-06-15 19:26
                回复
                  2025-12-30 02:00:36
                  广告
                  不感兴趣
                  开通SVIP免广告
                  硬核英语啊...


                  IP属地:辽宁来自Android客户端10楼2019-06-21 18:27
                  收起回复