以撒的结合吧 关注:288,831贴子:3,389,171

回复:一次射出多发泪弹时的泪弹发射角度的经验公式(重制版)

只看楼主收藏回复

第三部分:根据组内泪弹数teaersInBranch压缩组数branches

写文案的时候发现更好理解的写法应该是:
Branches = nMin + math.floor((n - nMin) /tearsInbranch)
其中nMin = 2
意思是如果至少持有一个内眼蜘蛛或眼镜,那么组数保底有2组,多于2的部分则除以组内泪弹数后向下取整,加在一起得到新的组数。
个人感觉g胖搞的这个组内泪弹数目越大,组数增加越困难的组数公式是不希望泪弹总数增加太快?


IP属地:湖北16楼2025-11-12 21:34
回复
    第四部分:检查泪弹总数是否溢出,如果溢出则优先保证组内泪弹数不变,减小组数直到泪弹总数不大于16

    该过程导致了可能出现拾取更多巫师帽后泪弹总数减少的状况,可以认为原则②总数不超过16覆盖了原则③尽量增加,举例如图:



    IP属地:湖北17楼2025-11-12 21:37
    回复
      2025-12-29 16:17:59
      广告
      不感兴趣
      开通SVIP免广告
      现在如果没有宝宝套的话,把【泪弹组数目】个泪弹组均匀分布在【组间最大夹角】,再在每个组内把【组内泪弹数目】个泪弹均匀分布在【组内最大夹角】就能得到所有泪弹的发射角度了,参考代码如下:


      用上述4个参数生成的tears,其中tears[i][j] = angleDegrees,其中i是泪弹所在泪弹组编号,从1开始计数,j是该泪弹在其组内的编号,也是从1开始计数,angleDegrees是其发射角度


      IP属地:湖北18楼2025-11-12 21:38
      回复
        【宝宝套的额外特殊处理】
        上述函数也包括了如果有宝宝套的情况下的额外处理,宝宝套只在没有巫师帽和一个巫师帽的情况下有用,具体操作下面分别解释:


        IP属地:湖北19楼2025-11-12 21:39
        回复
          首先对组数的处理:

          大部分情况下宝宝套会增加一个宝宝套泪弹组,含2枚泪弹
          如果巫师帽只有一个则组数+1,上限16。和再拿更多内眼或蜘蛛不同,因为只增加组数但组间最大夹角不变所以表现为泪弹更加密集:



          如果没有巫师帽,则会首先让组数+2,上限16,因为每组只有一个泪弹所以相当于泪弹总数+2。此时组间最大夹角不变但是组数变了所以泪弹会更密集,然后取最右边(角度最大)的两枚泪弹移除替换宝宝套泪弹组以保证总数不变,用图片说明会更易懂:



          IP属地:湖北20楼2025-11-12 21:47
          回复
            用更新后的组数和其他3个变量生成tears后再对tears做处理:移除需要移除的部分和添加宝宝套弹幕组


            IP属地:湖北21楼2025-11-12 21:49
            回复
              内容结束。这玩意纯粹是做mod整出来的副产物,楼主做事有点粗心所以如果发现有错误请务必指出,这样我也能偷个懒,非常感谢


              IP属地:湖北22楼2025-11-12 21:51
              收起回复