gamemaker吧 关注:13,696贴子:95,905
  • 4回复贴,共1

新人求助我想做类似崩溃大陆那种战斗宠物效果,实在找不到类似的

只看楼主收藏回复

新人求助
我想做类似崩溃大陆那种战斗宠物效果,实在找不到类似的教程,目前我是在怪的父实例设置了个battletime = false; 当怪追玩家之类时会变成battletime = true;,然后我想让宠物检查怪的战斗状态帮忙打架(如图),但当有多个子实例时,他只会检查第一个,并一直检测那一个,直到把那个怪杀了才会检测第二个,请问怎么同时检测多个实例呐?


IP属地:法国来自iPhone客户端1楼2021-03-11 17:29回复
    我也是新手不懂,但是我觉得可能可以这样试试
    在初始化的时候,记录每一个生成的对象并且放入到全局的池里面
    global.objectNames[global.ind] = object_get_name(object_index);
    global.ind += 1;
    代码大概如上所示.
    然后再需要做检测的地方,检测所有已经保存在全局变量里的对象,检测你已经设定好的值。然后做接下来的判断


    IP属地:江西2楼2021-03-15 02:52
    收起回复
      2026-02-27 11:13:56
      广告
      不感兴趣
      开通SVIP免广告
      先纠正一下提问的问题:
      0、不要期待所有的东西都有完整教程,有些东西是应该自己思考的,或者说用基础操作教程+构建教程+自己的拼合能力应该能够做出。
      1、“类似崩溃大陆那种战斗宠物效果”,会导致的一个情况是“没玩过这个游戏又不接受安利的就不要来回答了”。
      2、实例没有父关系,对象才有;但对象没有变量,实例才有。
      3、“宠物”是属于玩家的(和怪物战斗,以下简称A类)还是属于怪物的(每个宠物有唯一的怪物来跟随,以下简称Z类)这个逻辑没有在问题里说明。
      排除掉各方面因素后,问题有可能变成这样:
      0、有一个怪物object;
      1、有一个宠物object;
      2、宠物object的parent是怪物object;
      3、怪物设置了一个battlestate变量;
      4、场上会存在多个怪物实例,可能也有多个宠物实例;(单object 多instance 结构)
      5、宠物实例检查怪物实例的变量时,目前只会检查“第一个怪物实例”的变量,而设计的还想检测其他怪物实例。
      甚至简化成
      “当场上存在相同object的多个实例时,怎样对这些实例的同一个变量进行判定”。
      (其实object-instance结构的事情可以参照咱之前的帖子,精品-研究成果里应该比较好找。)
      显然,截图第一行的写法(p_enemy.battlestate)这种写法是行不通的,因为这样读取时永远是“第一个”,而赋值时是“所有的”。顺便下次截图记得截上行号,后期说的时候比较方便。
      这个问题的解法不唯一,但由于题主并没有完整出问题细节(比如多个p_enemy满足条件时截图可见第3行如何选择),所以有些地方可能需要题主根据实际做出调整。(注:在with结构中,所有代码是由被调用的实例执行的,原实例可由关键字other来指定)
      简易解1:

      这里的关键点是第11行,这里要存储的目标不是“对象名”,而是“实例ID”,因为单obj多ins结构里用对象名无法表示特定的实例。当然,实际测试时可能会发现这里保存的ID永远是“参战怪物里的最后一个”。所以题主需要对这段进行调整,以适应实际需要,推测可能会是“最近的”、“当可攻击未离开范围则不进行切换”或者什么其他的情况。


      IP属地:北京3楼2021-05-13 13:51
      收起回复