2016-12-11 41 views
0

我在我的類瓷磚實體的東西那種塊的邊界框的毛刺奇怪的方式

private AxisAlignedBB boundingBox = new AxisAlignedBB(-0.34D, 0D, -0.34D, 1.34D, 3.24D, 1.34D); 

@Override 
public AxisAlignedBB getCollisionBoundingBox(IBlockState blockState, World worldIn, BlockPos pos) 
{ 
    return boundingBox; 
} 

@Override 
public AxisAlignedBB getSelectedBoundingBox(IBlockState state, World worldIn, BlockPos pos) 
{ 
    return boundingBox.offset(pos); 
} 

@Override 
public boolean isFullCube(IBlockState state) { 
    return false; 
} 

@Override 
public boolean isOpaqueCube(IBlockState state) { 
    return false; 
} 

。當我試圖通過塊的中間走時,碰撞邊界框的工作原理是正確的,但是當我嘗試在塊上跳躍時,我卡在它中,試圖通過。如果我試圖從角落走進街區或試圖站在整個建築中,我也陷在同一街區:我跌倒直到我達到2D的高度,然後開始出現小故障。該街區的角落就好像沒有角落的邊框。是否有可能使塊邊界框工作正確?

The block and its bounding box.

Actual working (or partially working) area.

+0

我的世界的邊界框代碼不是專爲超出正常邊界的點擊框設計的。它可以用於碰撞,但不能用於選擇。以「BlockFence」爲例。 (我現在正在處理更完整的答案) – Pokechu22

回答

0

我會建議使用平衡塊這一點。放置塊時,在所需區域產生虛擬塊。當你的塊或者虛擬塊被破壞時,打破虛擬塊和真塊的整個結構。