植物大战僵尸吧 关注:524,985贴子:4,898,941

【研究党】关于跳跳……

只看楼主收藏回复

从图中位置开始测试,直到跳跳进家为止……


IP属地:江苏1楼2015-01-02 21:38回复
    坐等


    IP属地:湖南来自Android客户端2楼2015-01-02 21:40
    回复
      X坐标变化

      Y坐标变化

      离地面高度

      看这性感的弧线……


      IP属地:江苏3楼2015-01-02 21:40
      回复
        不出所料,同其他僵尸的行进一样,跳跳行进的过程中 Y 坐标不会变化。
        跳跳行进的过程中变化的只有X坐标和离地面高度,前者匀速减小,后者目测是周期函数,其中每个周期都是抛物线……


        IP属地:江苏4楼2015-01-02 21:45
        回复
          每当离地面高度减到⑨时开始下一个周期,如此重复,直到进家……


          IP属地:江苏5楼2015-01-02 21:49
          回复
            求记录坐标的程序


            IP属地:河南6楼2015-01-02 21:50
            回复
              这次测试所使用的存档:http://pan.baidu.com/s/1pJlxYuZ
              数据采集使用的是按键精灵脚本,下载地址:http://pan.baidu.com/s/1qWuPuji


              IP属地:江苏7楼2015-01-02 21:55
              回复
                脚本代码如下:
                fp = Plugin.File.OpenFile("F:\pogo.txt") //数据保存在F:\pogo.txt
                Sub OnScriptExit //在脚本退出时自动执行
                Call Plugin.File.CloseFile(fp)//关闭文件
                End Sub
                pvz = Plugin.Window.Find(0,"Plants vs. Zombies") //获取窗口句柄,"Plants vs. Zombies"为窗口标题
                base_addr = Plugin.Memory.Read32Bit(pvz, &H6A9EC0)
                this_level = Plugin.Memory.Read32Bit(pvz, base_addr + &H768)
                zombie_info = Plugin.Memory.Read32Bit(pvz, this_level + &H90)
                // 令zombie_info = [[6A9EC0] +768] +90]
                Dim tm
                Do
                If tm <> Plugin.Memory.Read32Bit(pvz, this_level + &H5568) Then
                tm = Plugin.Memory.Read32Bit(pvz, this_level + &H5568) //记录当前时间
                bogo_X = Plugin.Memory.ReadSingle(pvz, zombie_info + &H2C) //2C对应僵尸X坐标
                bogo_Y = Plugin.Memory.ReadSingle(pvz, zombie_info + &H30) //30对应僵尸Y坐标
                bogo_above_ground_level = Plugin.Memory.ReadSingle(pvz, zombie_info + &H84) //84对应僵尸离地面高度
                Call Plugin.File.WriteLine(fp, tm &vbTab& bogo_X &vbTab& bogo_Y &vbTab& bogo_above_ground_level) //把数据写入到文件
                End If
                Loop //循环执行`Do`后面的语句
                由于僵尸数据的特别的填充顺序,在一般的情况下不能直接写 zombie_info + &H2C 而要写成 zombie_info + (n * &H15C)+&H2C 然后仔细调整 n 的值使得数据对应的就是需要的僵尸,而不是对应其他的僵尸(或僵尸鬼魂)。
                因为制作的存档考虑了研究的方便,这里的 n 取的是 0 ,所以 n * &H15C 等于 0,也就不必写出了……


                IP属地:江苏8楼2015-01-02 21:59
                回复
                  还真是有求必应留一个


                  IP属地:广东9楼2015-01-03 08:43
                  回复
                    以上是测试一。
                    测试二:当跳跳遇到障碍物时,其坐标会发生什么变化呢?


                    IP属地:江苏10楼2015-01-03 11:39
                    回复
                      X坐标变化

                      Y坐标变化

                      离地面高度变化


                      IP属地:江苏11楼2015-01-03 11:43
                      回复
                        Y 坐标仍然一直保持不变。
                        X 坐标仍然是直线——不过在遇到障碍物时斜率(速度)有变化。离地面高度在每个区间内仍然是抛物线——不过在遇到障碍物时加速度有变化……


                        IP属地:江苏12楼2015-01-03 11:53
                        回复
                          测试二使用的存档:http://pan.baidu.com/s/1mgj2nH2
                          数据采集使用的仍然是 8L 的脚本


                          IP属地:江苏13楼2015-01-03 11:54
                          回复
                            这个的作用是什么


                            IP属地:江苏来自Android客户端14楼2015-01-03 11:56
                            收起回复