<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          植物大戰(zhàn)僵尸全屏奶油

          共 5512字,需瀏覽 12分鐘

           ·

          2023-05-07 13:29

          早期文章


          《植物大戰(zhàn)僵尸》這個游戲中想讓僵尸走慢一點,方法挺多的,可以使用冰凍豌豆射手,也可以使用玉米投手,也可以使用冰川菇。這里使用玉米投手的奶油,讓僵尸走的慢些。

          當僵尸走到離房子比較近的時候,讓僵尸的頭上頂一塊奶油,站在那里。這樣的話,需要判斷僵尸的位置,還有就是如何讓僵尸的頭上頂一塊奶油。

          僵尸頭上頂奶油,是僵尸的一個狀態(tài),這個狀態(tài)在僵尸基址的 B0 偏移處。僵尸坐標的偏移在僵尸基址的 2C 處。

          當僵尸離房子比較近時,讓僵尸頭上頂奶油,那么就需要判斷僵尸的位置。通過分析,僵尸移動的指令在如下位置:

                
                  0052AB25 - 74 09                 - je 0052AB30
                
                
                  0052AB27 - D9 46 2C              - fld dword ptr [esi+2C]
                
                
                  0052AB2A - D8 64 24 08           - fsub dword ptr [esp+08]
                
                
                  0052AB2E - EB 07                 - jmp 0052AB37
                
                
                  0052AB30 - D9 46 2C              - fld dword ptr [esi+2C]
                
                
                  0052AB33 - D8 44 24 08           - fadd dword ptr [esp+08]
                
                
                  0052AB37 - 83 7E 24 07           - cmp dword ptr [esi+24],07 { 7 }
                
                
                  0052AB3B - D9 5E 2C              - fstp dword ptr [esi+2C]
                
                
                  
                    0052AB3E?-?0F85?A4000000?????????-?jne?0052ABE8
                  
                
              

          0052AB2A 地址用來將僵尸的坐標向左移動,我們想要增加判斷,需要開辟一塊內存寫入判斷的代碼,當離房子比較近的時候,改變僵尸頭頂奶油的狀態(tài)即可。我這里找的是 00400F00 這個位置寫入,因為這個地方空白區(qū)域比較多,容易發(fā)揮。首先,修改 0052AB3E 處的代碼,修改為一條 jmp 指令。為什么選這條指令修改?原因比較簡單,因為指令長度夠,也就是把 jne 改為 jmp 后,不影響其他指令。如果修改上面的代碼,那么修改一條指令會影響后面的多條指令,畢竟影響過的指令,我們是要手動補上的。修改后的代碼如下:

                
                  0052AB3E - E9 BD63EDFF           - jmp 00400F00
                
                
                  0052AB43 - 90                    - nop
                
              

          在 00400F00 寫入判斷和修改僵尸狀態(tài)的代碼,如下的代碼:

                
                  00400F00 - 60                    - pushad 
                
                
                  00400F01 - 9C                    - pushfd 
                
                
                  00400F02 - D9 46 2C              - fld dword ptr [esi+2C]
                
                
                  00400F05 - C7 46 2C 56FB4843     - mov [esi+2C],4348FB56 { 200.98 }
                
                
                  00400F0C - D8 56 2C              - fcom dword ptr [esi+2C]
                
                
                  00400F0F - 9BDFE0                - wait:fstsw ax 
                
                
                  00400F12 - 9E                    - sahf 
                
                
                  00400F13 - 77 0A                 - ja 00400F1F
                
                
                  00400F15 - C7 86 B0000000 00010000 - mov [esi+000000B0],00000100 { 256 }
                
                
                  00400F1F - D9 5E 2C              - fstp dword ptr [esi+2C]
                
                
                  00400F22 - 9D                    - popfd 
                
                
                  00400F23 - 61                    - popad 
                
                
                  00400F24 - 0F85 BE9C1200         - jne 0052ABE8
                
                
                  
                    00400F2A?-?E9?159C1200???????????-?jmp?0052AB44
                  
                
              

          上面的代碼中,當僵尸的坐標小于 200.98 時,讓僵尸頭頂奶油,這里的 200.98 是單精度浮點數(shù),因此在內存中的值是 4348FB56。

          代碼不多,還是比較簡單的,效果如下:

          d3eaea71409cc0a342df8fa38ce1901a.webp

          從上面的圖中可以看出,僵尸走到紅框的位置處頭上都頂了奶油,并且站在那里不動了,而沒有走到那里的僵尸,將會繼續(xù)往前走,直到走到紅框的位置處。

          這樣,全屏奶油的效果就達到了。

          3a26a0f26c2b7f72301083bdb30dbe58.webp

          公眾號內回復?【mongo】 下載 SpringBoot 整合操作 MongoDB 的文檔。

          公眾號內回復?【 cisp知識整理 】 下載 CISP 讀書筆記。

          公眾號內 回復【java開發(fā)手冊】獲取《Java開發(fā)手冊》黃山版。


          瀏覽 60
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产骚逼网 | 日韩一级片免费视频 | 国产精品666 | 婷婷五月色综合 | 国产激情视频在线观看 |