【问题标题】:How to set bounding or collision box in NMS如何在 NMS 中设置边界框或碰撞框
【发布时间】:2022-06-11 04:32:48
【问题描述】:

我正在尝试设置实体的边界框(碰撞框)。我正在使用 Mojang 映射的 NMS 来制作我的自定义实体,我注意到有一个 setBoundingBox 方法,它使用 AABB(不管是什么)。我尝试通过放置块位置来制作 AABB 对象或其他任何东西,但它不起作用。这是我需要更改边界框或碰撞框吗?如果是这样,我该怎么做?

AABB 类的构造函数:

    public AABB(double var0, double var2, double var4, double var6, double var8, double var10) {
        this.minX = Math.min(var0, var6);
        this.minY = Math.min(var2, var8);
        this.minZ = Math.min(var4, var10);
        this.maxX = Math.max(var0, var6);
        this.maxY = Math.max(var2, var8);
        this.maxZ = Math.max(var4, var10);
    }

    public AABB(BlockPos var0) {
        this((double)var0.getX(), (double)var0.getY(), (double)var0.getZ(), (double)(var0.getX() + 1), (double)(var0.getY() + 1), (double)(var0.getZ() + 1));
    }

    public AABB(BlockPos var0, BlockPos var1) {
        this((double)var0.getX(), (double)var0.getY(), (double)var0.getZ(), (double)var1.getX(), (double)var1.getY(), (double)var1.getZ());
    }

    public AABB(Vec3 var0, Vec3 var1) {
        this(var0.x, var0.y, var0.z, var1.x, var1.y, var1.z);
    }

完整的实体类:

public class Ghostie extends Chicken {
    public Ghostie(Location loc) {
        super(EntityType.CHICKEN, ((CraftWorld) loc.getWorld()).getHandle());
        this.setPos(loc.getX(), loc.getY(), loc.getZ());
        this.setBoundingBox(new AABB(new BlockPos(1, 1, 1), new BlockPos(5, 5, 5)));
        this.setHealth(40); // 40
        this.goalSelector.addGoal(0, new FloatGoal(this));

    }
}

也在这里发布:1.18 - How to set bounding or collision box in NMS

【问题讨论】:

  • 设置AABB(轴对齐边界框)将是在 NMS 中设置相对基本的边界框碰撞的一种方式,但您需要确保 AABB 描述了边界框(除非 NMS 多年来发生了变化)。你为盒子使用了什么值,你目前的实际代码是什么? (包括它作为文本/代码块,而不是作为图像)
  • 很抱歉让您久等了,但我真的很忙。我试过this.setBoundingBox(new AABB(new BlockPos(1, 1, 1), new BlockPos(5, 5, 5)));
  • 这将形成一个 4x4x4 立方体的边界框,我认为它比您的实体大得多。但是,如果我没记错 AABB 需要 Vector3d 或整数参数,您不能简单地将随机类传递给它。显示 AABB 类的方法签名,以及您当前为自定义实体尝试的代码。
  • 好吧,this.setBoundingBox(new AABB(new BlockPos(1, 1, 1), new BlockPos(5, 5, 5))); 只是想看看它是否可行。我将您要求的其他内容添加到主要问题中

标签: java plugins minecraft bukkit spigot


猜你喜欢
  • 2012-09-05
  • 2011-04-21
  • 2013-02-18
  • 2013-04-01
  • 2015-02-01
  • 2014-02-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多