MCBBS Wiki欢迎您共同参与编辑!在参与编辑之前请先阅读Wiki方针

如果在编辑的过程中遇到了什么问题,可以去讨论板提问。

为了您能够无阻碍地参与编辑 未验证/绑定过邮箱的用户,请尽快绑定/验证

MCBBS Wiki GitHub群组已上线!

您可以在回声洞中发表吐槽!

服务器状态监控。点击进入

本站由MCBBS用户自行搭建,与MCBBS及东银河系漫游指南(北京)科技有限公司没有从属关系。点此了解 MCBBS Wiki 不是什么>>

用户:MashKJo/1.12.2模组开发教程/11.高级物品和方块 - 前置概念:修订间差异

跳到导航 跳到搜索
→‎AxisAlignedBB:​ // Edit via Wikiplus
→‎ActionResult<T>:​ // Edit via Wikiplus
→‎AxisAlignedBB:​ // Edit via Wikiplus
 
== AxisAlignedBB ==
AxisAlignedBB,全称AxisAlignedBoundingBox,简称AABB。这个类描述的是一个长宽高都确定的长方体——在实际应用中用于指定某个方块的碰撞箱,以及鼠标指向某方块时产生的勾选框。这个类下有许多运算用方法,如取交集(intersect)、取并集(union),但实际上这里的取交集和取并集并不等同于数学意义上的交集与并集,具体是怎样的读者去看看它们的具体实现就好了,简单来说这两个方法都返回一个AxisAlignedBB,然而空间中两个长宽高都平行于坐标轴的长方体,其并出来的新的几何图形可不一定是一个标准的长方体,所以这两个方法实际上意义不大了。
 
但实际上,Block类中用于获取碰撞箱的方法,返回值类型就是AxisAlignedBB,这是不是意味着我们的方块的碰撞箱只能是一个长方体了?实际上并不是,我们可以通过覆写<code>addCollisionBoxToList</code>来实现,具体操作为向一个List<AxisAlignedBB>中添加新元素,这就很简单了。
 
顺带一提,似乎Block类下几乎所有和碰撞箱有关的方法都被打上了@Deprecated注解,读者对此不要感到有疑虑,放心大胆地用即可。有的时候不要在乎这个@Deprecated,毕竟Block类下的<code>getStateFromMeta</code>和<code>getMetaFromState</code>都被@Deprecated了——你总不能不覆写这两个方法吧?不覆写的话,注册多BlockState方块就会崩游戏了。实际上这都是因为Mojang即将在1.13大改这些类和相关方法,你一般会看到Forge对此写的一些注释如“to be removed in 1.13”,可问题是我们现在是在写1.12的模组,所以有的时候这些@Deprecated也挺让人不知所谓的。
 
== BlockPos ==
行政员、​优秀编辑者、​界面管理员、​监督员、​管理员、​小部件编辑者
3,351

个编辑

我们提供服务需要使用Cookie。您使用我们的服务,即表示您同意我们使用Cookie。

导航菜单