私服,bt手游、公益服手游下载、超变手游、变态手游、手游资讯平台!「bt游戏-bt游戏盒子哪个好-bt游戏下载专区」
  • 主页 > BT手游 > 正文

    高玩教你制作1.13轨道炮以及追踪弹道修正系统_我的世界

    2019-09-09 13:05 BT手游
    下面小编为大家带来我的社会风气1.13轨道炮制作教程,想在耍中做威力强大的轨道炮吗?那么这帖子一定能满足你的意,想试的玩家一道往下看看吧~!  跳过剩余的开场白,这次分享一个轨道炮的落实措施。  不过轨道炮的子弹只是来卖萌的耳,呈现的中坚部分在实装在其上述的 追踪弹道修正系统  此追踪并非百发百中的必中,而是基于追踪对象的职位 对自我的弹道进行偏移修正,  通俗的说就算子弹的开拓进取方向就目标活动逐步偏向目标位置,可实现更真实的特效。  此模块可自定义 追踪的目标点 ——追踪对象的脑瓜儿或脚部,也可自定义 追踪时的舞狮速度 和 追踪角度范围  效果图:  追踪范围内——追踪成功效应  目标超出追踪范围——追踪未果效果  那么进入讲解环节  本次授课涉及1.13的下令,如果对指令不了解的同室请自行转到令讲解贴内学  重点讲解追踪部分的运算,子弹的移动效果实现不做讲解。  追踪模块代码:  #子弹追踪曲线修正  #Usage: execute as @e[tag=bullet,...] at @s run function pack:(...)/bullet_tracking  #Scoreboard  scoreboard objectives add Bullet_RotX dummy  scoreboard objectives add Bullet_RotY dummy  scoreboard objectives add ToTarget_RotX dummy  scoreboard objectives add ToTarget_RotY dummy  scoreboard objectives add Math dummy  #Get_Data  execute store result score @s Bullet_RotX run data get entity @s Rotation[0] 1000000  execute store result score @s Bullet_RotY run data get entity @s Rotation[1] 1000000  #Get_ToTarget_Data  execute as @s at @s anchored feet run tp @s ~ ~ ~ facing entity @e[type=!player,tag=!bullet,distance=..20,limit=1] feet  #瞄准位置(eyes/feet)  execute store result score @s ToTarget_RotX run data get entity @s Rotation[0] 1000000  execute store result score @s ToTarget_RotY run data get entity @s Rotation[1] 1000000  execute store result entity @s Rotation[0] float 0.000001 run scoreboard players get @s Bullet_RotX  execute store result entity @s Rotation[1] float 0.000001 run scoreboard players get @s Bullet_RotY  #-----水平偏移-----  #Offset_Calculation  scoreboard players operation @s Math = @s ToTarget_RotX  scoreboard players operation @s Math -= @s Bullet_RotX  # 偏移探测范围↓ 偏移角度参数↓  execute as @s at @s if score @s Math matches -90000000..0 run tp @s ~ ~ ~ ~-2 ~  execute as @s at @s if score @s Math matches 0..90000000 run tp @s ~ ~ ~ ~2 ~  #-----竖直摇头-----  #Offset_Calculation  scoreboard players operation @s Math = @s ToTarget_RotY  scoreboard players operation @s Math -= @s Bullet_RotY  # 偏移探测范围↓ 偏移角度参数↓  execute as @s at @s if score @s Math matches -90000000..0 run tp @s ~ ~ ~ ~ ~-2  execute as @s at @s if score @s Math matches 0..90000000 run tp @s ~ ~ ~ ~ ~2  复制代码  此代码附件内同也有,需要的同室可自动搬用  核心思路:  1.13指令系统中,记分板会读取实体的NBT数据,并存储为整形(integer),因此可以将实体的Rotation存储到记分板内。  但其实的情状中,实体的Rotation是浮点数(float),为了使追踪系统尽量精确,需要将积存到记分板的 小数 数值进行拓宽,  把小数的数值转换成整数存储进记分板,在数码回调至实体NBT时再压缩存入。  简单介绍记分板的用意:  Bullet_RotX、Bullet_RotY —— 分别存储 子弹实体 实时的Rotation X、Y的数值  ToTarget_RotX、ToTarget_RotY —— 分别存储 子弹实体 基于面向追踪对象状态 的实时 Rotation X、Y 的数值  Math —— 对以上四个记分板数值的运算结果存储  每部分算法分析:  Get_Data —— 将子弹的Rotation放大1000000倍,存入Bullet_RotX、Bullet_RotY记分板中  Get_ToTarget_Data —— 以子弹面向目标时的Rotation放大1000000倍,存入ToTarget_RotX、ToTarget_RotY记分板中  再将子弹原先的朝向数据,通过Bullet_RotX、Bullet_RotY的值 缩小1000000倍 赋值回去  *注意,这里可以修改追踪对象的追踪位点——头部或脚部  接下来的运算就不必多说,将ToTarget_Rot 数据减少 Bullet_Rot ,对应结果存入Math记分板中 ,对Math的值进行判断,执行相应的朝向tp旋转  *注:在此地可以而且调整旋转的水准 ,以及Math的界定判定调整(甚至可以..0 , 0..这么玩)。  当然,这个追踪系统只含有水平和竖直方向上的追踪,没有落实任意弧度的追踪,  但可在此基础上做 朝向分段判定拓展,实现不同偏移加速度。  BT手游

    更多 高玩教你制作1.13轨道炮以及追踪弹道修正系统_我的世界相关文章

    网站分类