植物大战僵尸吧 关注:561,200贴子:5,089,748

纵向偏移的部分遗留问题清算——时空贴补丁

只看楼主收藏回复

判定中除了横纵坐标外,还有纵向偏移又或者说高度(高度其实更好理解正负号关系,纵向偏移则听起来很“专业”)会影响判定范围。本文总结了一些僵尸高度变化的情况并尝试给出较详细的说明,同时还有一些其他内容的延伸。


IP属地:广东1楼2024-08-15 09:41回复
    1.舞王召唤的伴舞
    舞王召唤的伴舞纵坐标正常计算,但在出土过程中伴舞其实有高度从-200(地底高度是负的)变化到0的过程,而至今时空贴还保留着-150的错误数据。不过可以理解,150对应的是该过程需要150cs,而高度变化大部分情况都是1px/cs。但伴舞出土不是这样,而是每3cs中有1cs移动2。有意思的是旧时空贴楼主不久后其实发现了这一错误并进行了更正,但翻修的新时空数据估计是忘了这个更正。
    在出土过程中土豆雷不会被触发,所以这个纵向偏移虽然大到理论上足够套路土豆雷,但实际上套路不了。(伴舞卡雷出现在从合适的位置召唤出来并啃食增大触发范围的情况)


    IP属地:广东2楼2024-08-15 09:45
    回复
      2025-06-13 18:37:14
      广告
      2.气球
      气球是个特殊的僵尸类型,纵坐标相比同行僵尸-30(纵坐标以下为正,跟高度相反),在气球未破时有+25的纵向偏移,气球扎破后以1px/cs速度下落25cs(该过程横坐标不变,即没有向前走的动作),落地后还有大概90cs前摇后晃不前进不啃食的停滞时间(该时长不受减速影响)。
      观察到修改器生成的气球僵尸纵坐标其实一开始跟同行僵尸相等,有个30cs的上升过程,不知道自然出怪生成的气球是否也有此现象。气球僵尸虽然是天上飞的,但在屋顶斜坡处也会随斜坡增大纵坐标,保持比同行同x位置的僵尸y-30。
      补充三叶草吹气球的数据,三叶草生效后,气球僵尸在x方向被施加了一个+10px/cs(右为正)的速度吹出场。


      IP属地:广东3楼2024-08-15 09:47
      回复
        3.雪橇
        时空贴中给了推车时纵向偏移-10坐车时纵向偏移+18的数据,这是对的但并不完整。仔细观察可以发现四兄弟(按顺序称为大哥、二哥、三弟、四弟)推车时是一边两人且交错排列的,大哥、三弟在下而二哥、四弟在上,-10是大哥,三弟是-7,二哥和四弟是+9(不过说实在的这不重要,因为这些偏移并不影响雪橇车的判定)。而上车过程大概120cs,四兄弟先变为-9,+8,-9,+8,然后大哥和三弟以0.54为一单位位移,二哥和四弟以0.2为一单位位移,在这120cs内各进行50单位位移最后变为+18。


        IP属地:广东4楼2024-08-15 09:50
        回复
          雪橇和传送门结合还有一些离谱特性,这里一并补充了。如图,雪橇过传送门是一个一个僵尸过,iz中在五路传送门前放雪橇小队,因为五路有冰道所以可以滑行,后面跟着的三兄弟过传送门变成一路的,但大哥没过传送门,雪橇车的判定还是在五路,所以三兄弟在这个过程中不会被雷炸,等冰道滑完,雪橇损坏,在一路“滑”的三兄弟上半身(下一楼放图)将恢复全身且从五路出发飘向一路,这个过程高度没有变化而是纵坐标以1px/cs变化,这么大的偏移足以在触发雷的情况下不被炸到(具体计算这里就不详细说了)。


          IP属地:广东5楼2024-08-15 09:52
          回复
            这个过程中雪橇的动画也很有意思,后面经过一些“控制变量”实验可以得出以下结论:
            (1)大哥决定雪橇车的判定及雪橇动画的x(即雪橇车的动画可以跟大哥不同行,但列上是对齐的);
            (2)在推车过程中三弟决定雪橇的行,如图,三弟换行后把雪橇动画抢过来了;

            (3)在坐车过程中大哥决定雪橇左车身动画的行,如图,大哥上车后把左半车身抢回来了;

            (4)在坐车过程中四弟决定右车身动画的行,如图,右半车身在四弟手上;

            (5)暂时没发现二哥跟车的动画有关,同时可以发现设计者很“懒”,正常情况下玩家看不见的地方不画,导致四弟手上的右车身如此“寒碜”,而四兄弟坐车时都没有下半身(秒杀雪橇后可以发现大哥也没有下半身)。


            IP属地:广东6楼2024-08-15 09:55
            回复
              4.潜水
              对于跳入泳池的潜水,时空贴给出了正确的+10纵向偏移(虽然不知道为什么跳入水中高度反而是正的),以0.08px/cs速度进行大约120cs,而同样有跳水动作的海豚骑士在该过程中没有高度变化(不过海豚有另外的高度变化过程,后面会说)。至于直观感受上应该有高度变化的潜水探头出来啃食植物,实际上并没有高度的变化。
              奇怪的是旧时空贴给出了潜水正确的防御域y值,换算成现在常用的内存系为0~+130,与其他僵尸都不同,应该单独列出,然而新时空贴却丢失了该数据。
              补充一点其他地方应该也有的潜水小知识,潜水探头后如果还能下潜速度参数会由0.2变为0.3(因为在泳池中潜水是匀速运动,可以简单理解为由4s一格变为2.67s一格,速度变为1.5倍);潜水在下潜状态时不仅不吃直射子弹,也不会吃到火豆溅射伤害。


              IP属地:广东7楼2024-08-15 09:56
              收起回复
                前排月莫


                IP属地:广东来自Android客户端8楼2024-08-15 09:56
                收起回复
                  2025-06-13 18:31:14
                  广告
                  5.鸭子
                  这个发现跟我所用工具给出的值对不上,但一些实验又证明我的想法是有道理的,不敢保证正确。
                  鸭子下水后会有-40的纵向偏移,因为不会“跳水”,所以是以1px/cs的下落实现的。-40的纵向偏移对鸭子的防御域上端偏移是正确的,下水鸭子防御域上端确实下移了40px。然而防御域下端却不是这样。
                  我的结论是防御域下端还与鸭子是否为啃食状态有关。下图也可以看出一些端倪:啃食时可能是植物提供了支撑,鸭子救生圈没有没入水中(当然这是我乱猜的)。啃食时鸭子的防御域下端与没下水的一样,游泳时也只是下移7px,远没有40这么多。可能是下端还有其他机制?如果硬要套现在的计算方法那内存系防御域y值为0~+75(啃食)、0~+82(游泳)。


                  IP属地:广东9楼2024-08-15 10:00
                  收起回复
                    6.跳跳
                    时空贴给的数据是纵向偏移+16,跳跃中在+9~+49。个人对这个说法表示困惑,按我的理解,跳跳无论是跳跃还是行走首先都是纵坐标比同行其他僵尸-16,应该跟气球一样归类为特殊y。然后“跳跃”也不准确,事实上跳跳有三种跳:一种是前进跳,在没有障碍物时的前进方式,+9~+49仅限于这种跳跃;二是蓄力跳,当跳跃域与某可跳跃植物防御域重合时,跳跳会在原地跳一次,为接下来的飞跃蓄力,该过程高度为+9~+59;三是飞跃跳,在蓄力跳完成后,跳跳会跳得足够高从视觉上飞跃障碍植物,高度为+9~+99。(三种跳的名字lz自己取的,没什么讲究)
                    跳跳每一次跳跃时长为80cs,包括一上一下,也就是说三种跳分别用40cs完成了高度上40、50、90的变化。该变化并不是匀速的,而是高度小时变化快,高度大时变化慢(很好理解,动能与重力势能的转换嘛)。事实上,变化量是一组等差数列,从1x,3x,5x...79x共40个变化量,总和1600x,除一下可得三种跳的x分别为0.025、0.03125、0.05625。
                    高坚果的拦截事实上也与高度有关,位置合适时,高坚果会拦截进行飞跃跳而且高度达到48.375的跳跳(也就是飞跃跳刚进行10cs,这个高度其实另外两种跳也可以达到,但高坚果不会拦截)。跳高坚果更详细的内容lz计划之后如果有时间专开一个讲跳跳的贴,到时候再详细计算。被高坚果拦截和被磁力菇吸后以1px/cs速度下落,在下落过程中有前进动作。


                    IP属地:广东10楼2024-08-15 10:01
                    收起回复
                      7.矿工
                      矿工在挖地过程中并没有高度变化,要不然iz中的各种接矿判定就不是现在这样了。矿工的高度变化实际上出现再出土过程且两种出土情况(挖到最后一列自己挖出来和镐子被吸)高度变化都一样,出土时先获得一个-120的高度(在地里,负高度没毛病),然后在85cs内先快后慢地升至20,停留20cs,在25cs内降至0。自己挖出来因为是螺旋升天,有350cs的眩晕后摇;被吸则会有个打问号的200cs前摇。


                      IP属地:广东11楼2024-08-15 10:02
                      回复
                        8.蹦极
                        获得一个3000+rnd(随机数)的高度,以8px/cs的速度降至0,抓取植物后再以同样的速度大小升至600。


                        IP属地:广东12楼2024-08-15 10:02
                        收起回复
                          9.海豚
                          前面说过海豚入水没有高度变化,有高度变化的是跳跃过程。海豚跳跃的总过程是这样的:x方向上以0.5px/cs速度移动112cs共56px,而高度在晚2cs的情况下以0.0833333px/cs(应该是个循环小数,位数是工具保留的)速度移动120cs共10px,再过110cs后x值瞬移94cs,高度从10恢复至0。总的来说海豚跳了150px且有高度的变化。
                          如果被高坚果拦截,那么海豚将在高度到达5.66667时(高度变化68cs,x方向移动70cs)停止x方向速度参数0.5的移动,同时海豚获得30的高度,在接下来下降的30cs内可以前进。


                          IP属地:广东13楼2024-08-15 10:03
                          回复
                            10.梯子
                            前数据大佬有过研究,下面放图,这里只补充一下:事实上是以0.8px/cs上升112cs至89.6,接下来的1cs感觉是混合的,大部分僵尸以1px/cs的速度下降,又升又降等效为降0.2,所以下1cs是89.4,之后匀速下降90cs直到0。例外是带杆撑杆,观察就可以发现其下梯非常快,事实上其下梯速度为2px/cs,所以113cs时高度为88.4,之后匀速下降45cs直到0。图中“大多数情况下”表述很严谨,“少数情况”计划以后有时间开专贴讲(挖坑+1)。


                            IP属地:广东14楼2024-08-15 10:04
                            回复
                              2025-06-13 18:25:14
                              广告
                              11.小鬼
                              前人成果颇丰,截取一位大佬的图放在这里。


                              IP属地:广东15楼2024-08-15 10:06
                              回复