弹射物¶
弹射物(Projectile)是Minecraft基岩版中沿弹道轨迹飞行、在碰撞时触发效果的一类非生物实体。箭矢、雪球、鸡蛋、三叉戟、火球、末影珍珠等均属于弹射物。
概述¶
弹射物是实体分类体系中非生物实体(Non-Mob Entity)的重要组成部分。与生物不同,弹射物通常没有AI意向,其运动完全由物理模拟驱动:射出后在每刻更新速度与位置,同时受重力影响向下加速,直至碰到方块或实体、触发击中效果后消亡。
弹射物的核心行为由行为包中的minecraft:projectile组件定义,该组件控制飞行物理参数(如重力、初速度、惯性)以及命中时的各种效果。
运动机制¶
弹射物的运动依赖以下几个核心参数:
- 初速度(power)
- 决定弹射物发射时的速度大小。数值越大,弹射物飞行越快,受重力影响相对越小,射程越远。
- 重力(gravity)
- 每刻对弹射物施加的向下加速度。该值越大,弹射物下坠越快,弹道弧度越明显。箭矢的默认重力约为
0.05。 - 空气惯性(inertia)
- 弹射物在空气中飞行时每刻保留的速度比例。默认约为
0.99,意味着每刻速度轻微衰减。 - 液体惯性(liquid_inertia)
- 弹射物在水中飞行时每刻保留的速度比例,通常远小于空气惯性,默认约为
0.6。
命中效果¶
弹射物与方块或实体发生碰撞时,由on_hit字段控制一系列后处理行为,典型效果包括:
- 对目标造成冲击伤害(由
impact_damage子对象控制,可设定固定值或随速度浮动的伤害范围); - 点燃目标(
catch_fire),可选搭配游戏规则mobGriefing的限制; - 将发射者传送至命中位置(
teleport_owner,如末影珍珠的行为); - 在命中位置生成喷溅效果(
spawn_aoe_cloud,如喷溅药水的行为); - 将弹射物插入地面(
stick_in_ground,如箭矢插地行为); - 命中后移除弹射物(
remove_on_hit)。
弹射物与实体关系¶
弹射物本身就是实体,因此支持完整的实体定义体系,包括服务端行为定义和客户端外观定义。一个弹射物实体的行为包定义通常包含:
minecraft:projectile:核心飞行与命中逻辑;minecraft:physics:启用物理模拟(通常必选);minecraft:collision_box:碰撞箱形状;minecraft:damage_sensor:可选,用于处理弹射物自身被攻击的情形(如三叉戟可被召回)。
弹射物射出方式¶
弹射物可通过以下途径进入游戏世界:
- 实体通过
minecraft:shooter组件射出弹射物,该组件定义发射何种弹射物以及发射参数; - 通过命令
/summon直接召唤; - 附加包事件或
minecraft:behavior.ranged_attack等AI意向组件触发发射。
精度控制¶
弹射物支持在发射时引入角度随机偏差,以模拟现实中的射击扰动。uncertainty_base定义基础最大偏差角度,uncertainty_multiplier定义游戏难度对偏差的叠加系数,最终偏差 = uncertainty_base − 难度等级 × uncertainty_multiplier。
参考¶
弹射物的具体组件字段详见弹射物组件参考。