【求教】怪物移动的问题



  • 我的怪物有{自动寻路}和{炮台}两个能力

    应该怎么才能让怪物实现

    炮台范围内没敌人时,自动向最近的敌人移动,并关闭炮台
    否则,停止移动,并开启炮台



  • 其实就根据你说的逻辑自己就可以写出来了

    相关的条件动作都有,找一下就可以了实现了



  • 整理逻辑应该是这样的

    怪物生成以后

    若炮台范围没有敌人,则自动检索最近的敌人,向其移动,并禁用炮台
    当敌人进入炮台范围时,停止移动,并启用炮台

    就是这一块的逻辑,我没找到相关的条件呢



  • 你把你的逻辑反过来,可能会更好找到你需要的条件, 实际上是只要一个取反操作就可以了




    炮台范围内没敌人时,
    否则,停止移动,并开启炮台

    把这个反过来思考

    炮台范围内有敌人时,停止移动,并开启炮台
    否则,自动向最近的敌人移动,并关闭炮台


    这里需要注意的是,不是开启关闭炮台
    而是添加的目标对象,在范围内炮台会自动攻击,然后你用炮台开火时这个条件来生成子弹
    关闭禁用炮台后,就没办法用存在目标时这个条件了



  • @CJJ 哪大哥 我应该用什么移动方式呢?我用{自动寻路}的话,找不到{移动中}这个条件
    无法做出:当怪物移动时,动画为“走动”,停止为“待机”



  • @我的个妈呀666

    当然有啦, 沿路径移动时 不是有这个条件吗



  • @CJJ 哦哦哦 好的 谢谢 是我眼瞎了

    哪大哥 还有个问题 你说自动向最近的敌人移动,哪我应该用哪一个动作呢?

    我当前是做法是:寻找达到(X,Y)的路径,并自动移动,我觉得这个逻辑不太正确



  • @CJJ 大哥这是我当前的设计逻辑 你能帮我看看 怪物为什么还是不动吗?
    undefined



  • @我的个妈呀666

    有个条件叫 选中最近/最远的实例

    这个一般要配合同类组来写,将怪物都丢进一个同类组,然后点击该同类组,然后再点击这个条件

    弹出以后,XY就是你炮台的XY
    比如 主角有炮台能力 ,那么就 X处填写 主角.X Y处填写 主角.Y

    此时就是选中的同类组中 离 主角最近/最远 的实例进行操作了



  • @CJJ 明白了 我已经加了同类组了 但是这个 最近/最远的实例 我应该去哪里找呢?

    我在{寻找路径}的条件里面选到同类组了 但是没有看到这个选项
    undefined



  • @我的个妈呀666

    你是想要玩家移动攻击僵尸,还是让僵尸移动攻击玩家?

    我给你写一个例子



  • @CJJ 我想让 僵尸 攻击 英雄

    僵尸有炮台和移动的能力

    僵尸的逻辑 我想是这样的
    范围内有英雄时,停止移动,并启动炮台
    否则,禁用炮台,寻找最近的英雄,并向其移动
    否则,禁用炮台,移动到(100,100)的位置



  • @CJJ 另外大哥,再请教一个小问题哟,我英雄和怪物都是使用同一种子弹,但是英雄和怪物的炮台范围都不一样,怎么让子弹在生成的时候根据生成的母体炮台范围来销毁呢?



  • @我的个妈呀666
    方法1:给子弹一个实例变量,创建子弹时用这个变量记下母体的炮塔范围,然后当子弹的移动距离超过这个实例变量值时,销毁子弹(缺点,如果子弹会拐弯,那计算就不太准确)
    方法2:给子弹一个实例变量,创建子弹时用这个变量记下母体的uid,然后每帧对每个子弹用uid选中其母体,进而判断子弹和母体的当前距离是否超过母体的炮塔范围,进而销毁子弹(缺点,相对耗性能,不适合超多子弹实例的情况)



  • 好的感谢 我这边再试试



  • @CJJ 大哥 请问有例子可以抄抄作业吗?


Log in to reply