Forge版本: 14.23.5.2768
Minecraft版本: 1.12.2
我打算写一个反重力不断向上飘的物品实体。就是简单地更改了onUpdate方法。该实体的运动方式没有问题,但当其上方被方块挡住时在某些情况下会卡进方块内半截。我通过测试认为实体在服务端的位置没有错误,但在客户端的显示有问题。
问题相关代码如下:
public class EntityItemAerogel extends EntityItem {
public EntityItemAerogel(World worldIn, double x, double y, double z, ItemStack stack) {
super(worldIn, x, y, z, stack);
this.setNoGravity(true);
}
@Override
public void onUpdate() {
super.onUpdate();
this.motionY += 0.002D;
if (this.motionY > 0.1D) {
this.motionY = 0.1D;
}
markVelocityChanged();
}
我曾尝试但失败的方法:
@Override
public void onUpdate() {
double y = this.motionY;
super.onUpdate();
if (this.collidedVertically && y > 0) {
this.motionY = 0;
}
this.motionY += 0.002D;
if (this.motionY > 0.1D) {
this.motionY = 0.1D;
}
markVelocityChanged();
}
问题图片:
正常图片: