跳转至

弹射物

弹射物(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_attackAI意向组件触发发射。

精度控制

弹射物支持在发射时引入角度随机偏差,以模拟现实中的射击扰动。uncertainty_base定义基础最大偏差角度,uncertainty_multiplier定义游戏难度对偏差的叠加系数,最终偏差 = uncertainty_base − 难度等级 × uncertainty_multiplier

参考

弹射物的具体组件字段详见弹射物组件参考