植物大战僵尸吧 关注:556,691贴子:5,057,554

PVZ碰撞箱:常常提到的PVZ判定,究竟是怎样的

只看楼主收藏回复

如题,更新可能偏慢


IP属地:山西1楼2024-08-16 13:07回复
    在一切的开始,需要先明确一下PVZ矩形的结构。
    PVZ矩形一共有四个属性,X、Y、Width、Height
    即通过最靠近屏幕左上角的点的横纵坐标,与矩形的长度、宽度来锁定一个矩形。


    IP属地:山西2楼2024-08-16 13:09
    回复
      首先要指出的常见误区是,内存内存的矩形,偏移到僵尸位置后,不一定就是判定使用的矩形。
      一个常见的例子,潜水僵尸潜水时,读到的受击矩形高度为115,但是实际使用是130.
      不过可以放心的是,对于僵尸矩形,横向并没有进一步处理,这件事只影响纵向。


      IP属地:山西3楼2024-08-16 13:15
      回复
        第二,PVZ判定的纵向区域,真的重要吗?
        事实上,PVZ判定的纵向区域绝大多数情况都是不重要的,游戏基本都压根不会判断纵向是否相交。
        实际上纵向有意义的场所基本仅限于以下:
        ① 涉及到圆形的判定(爆炸,胆小菇缩头,锤子锤,磁力菇)
        ② 部分有关点击、显示位置的内容(例如触摸僵尸时,名字显示的位置)
        ③ 杨桃索敌,香蒲跟踪等需要明确一个点的


        IP属地:山西4楼2024-08-16 13:21
        回复
          在大多数情况下,纵向判断是依赖所属行进行的。
          少数情况下,纵向判断会根据Y和Z(高度)属性进行计算。


          IP属地:山西5楼2024-08-16 13:22
          回复
            第三,获取到的判定箱,会被拿去干什么?
            首先,判定箱获取后,是有可能被修改后再使用的。
            一个典型的例子是撑杆引雷,另一个典型的例子是火球溅射。
            火球溅射获得到判定箱后,会将其宽度重新设为100.
            其次,游戏对于“碰撞”的概念,不一定是有相交,更多的是相交了多少。
            这一点可以参考我之前的帖子:【破事水】从冰车地刺开始谈判定


            IP属地:山西6楼2024-08-16 13:25
            回复
              第四,游戏有一些碰撞并不依赖于碰撞箱
              典型的例子是僵王的火球、冰球,是获取的动画位置,现算的
              还有传送门本身,传送门也是现算的类型


              IP属地:山西7楼2024-08-16 13:32
              回复
                另一方面,很多判定依赖于格子这一概念。
                例如僵王冰火球碾压,并不是判断碰撞箱有无重叠,而是从冰火球的动画计算出冰火球的所在列,对格子进行一次碾压。


                IP属地:山西8楼2024-08-16 13:33
                回复
                  大概就是这些,这个帖子主要目的是说明一些有关判定箱的常见问题,被私信问的次数很多,所以专门发个贴说说。
                  此外,游戏内打开Debug看到的碰撞箱,是实际获取到的碰撞箱。例如僵尸就会进行高度有关的修正。


                  IP属地:山西9楼2024-08-16 13:35
                  回复
                    哦对了,过几天可能发个帖子把保龄球的机制说一下,保龄球还是很有意思的。
                    最近想发一些原版机制有关的帖子,但是不知道发什么比较好


                    IP属地:山西10楼2024-08-16 13:37
                    回复
                      然后有啥想了解的机制可以在这回复下,我看看可以写点啥(?)


                      IP属地:山西来自Android客户端11楼2024-08-16 13:41
                      收起回复


                        IP属地:天津来自Android客户端12楼2024-08-16 14:33
                        回复
                          资瓷


                          IP属地:陕西来自Android客户端13楼2024-08-16 15:22
                          回复
                            精前留名


                            IP属地:广东来自Android客户端14楼2024-08-16 16:16
                            回复
                              哥们太厉害了👍🏿


                              IP属地:黑龙江来自iPhone客户端15楼2024-08-16 16:26
                              回复