【优化建议】关于分类组





  • @拉布拉多拉得多不多 可能我手机问题发不出去图



  • @gxf1033
    这条是用手机发的,测试图片是否可见
    undefined
    我这边用上传图片的方式是能发的



  • @拉布拉多拉得多不多 那就是我手机的问题了,,undefined



  • @拉布拉多拉得多不多


    那就看这几句话吧。

    代码中蓝色的字必须点选,能不能做成可以编辑的。

    比如【怪物】显示怪物
    却不能写成
    map.get("怪物")显示怪物

    现在蓝色的字只能鼠标在菜单里选出来导致不能以传参的形式写在循环里。

    我想
    for
    if map.get(name)......

    而不是

    for
    if 火球法师......
    if 冰法.....
    if 近战牛头....

    功能是可以实现我就奢求更方便




  • @gxf1033 你举例的这些个“火球法师”、“冰法”、“近战牛头”的后续动作的处理有共通点吗,还是基本不一样的?共通点的部分可以用同类组做统一处理的
    undefined
    undefined



  • @拉布拉多拉得多不多 不行,要算1技能的攻击距离加怪物施法距离,技能伤害加怪物原始伤害,他们有共通属性但是属性不一样



  • @gxf1033 可以的,只要实例选中正确,引用变量时就是所选中的实例的实例变量值,所以就算所有实例的值各不相同,只要条件筛选出的实例是正确的,那就能顺利引用到,不过有前提条件,那就是类似的实例变量要共同来源于同类组,例如有怪物对象A和怪物对象B,它们同属于怪物同类组C,此时它们都需要一个“施法距离”的变量,如果你分别给怪物对象A和怪物对象B添加这个变量,那么通过怪物同类组C就无法调用到它们各自的“施法距离”,而如果你是直接把“施法距离”这个变量直接加给怪物同类组C,那么怪物对象A和怪物对象B就会跟着拥有这个“施法距离”变量,那么遍历怪物同类组C的时候,即使怪物对象A和怪物对象B的这个变量的值不一样,也能做统一的逻辑处理,例如下面这样:
    两个怪物对象的攻击距离和攻击距离是不一样的
    undefined
    undefined
    事件如下:
    undefined
    undefined
    效果如下:
    可以看到左边的怪要挨得很近才能触发攻击(因为它攻击距离很短),而且生成的伤害文本是-2,而右边的怪很远就能触发攻击了(因为它攻击距离比较长),而且生成的伤害文本是-5
    这是因为上面的事件中,是以整个怪物同类组来做统一的行为处理的,所以除了引用的数据不一样导致了触发攻击的距离不一样和伤害值不一样,“精灵进入攻击范围内就进行攻击”这个整体的核心逻辑是它们两者通用的。
    undefined



  • @拉布拉多拉得多不多 我知道你为什么可以了,我的是场景开始时才创建的怪物,你的是放上去然后每个实例赋值,而你这个属性其实是怪物组属性。
    我的是怪物数随机,所以不能直接放。如果循环生成怪物时再单个赋值攻击属性也是可以的只是也很麻烦,必须建个数组保存各对象的攻击距离然后赋值给怪物组。哦可以这个方案是最好的,大神这个方案可以,加怪物的时候list.add就行了。大佬厉害厉害

    我错误的认为怪物组的实例≠怪物实例,,,,

    大佬再问个问题,有发送http请求的功能吗?我想通过连自己的后端,我看里面有转换post和处理json的功能但是没找到发送http请求的功能,ajax好像只能访问项目文件



  • @gxf1033 我这里只是为了快速演示省去了创建实例,实际上不同对象是允许设置不同的初始值的,创建不同对象的实例时会按这个初始值来,就不需要再在事件表创建的时候再额外设置值了,也比较方便(如果所有场景中存在对象的实例,那么初始值以第一个场景中的实例为依据(所有场景都会算上),如果任何场景都不存在对象的实例,那么就会以对象的默认值为初始值),后面那个问题的话,好像目前唤境是没有这个功能的。


登录后回复