植物大战僵尸全屏奶油

简介: 植物大战僵尸全屏奶油

《植物大战僵尸》这个游戏中想让僵尸走慢一点,方法挺多的,可以使用冰冻豌豆射手,也可以使用玉米投手,也可以使用冰川菇。这里使用玉米投手的奶油,让僵尸走的慢些。

当僵尸走到离房子比较近的时候,让僵尸的头上顶一块奶油,站在那里。这样的话,需要判断僵尸的位置,还有就是如何让僵尸的头上顶一块奶油。

僵尸头上顶奶油,是僵尸的一个状态,这个状态在僵尸基址的 B0 偏移处。僵尸坐标的偏移在僵尸基址的 2C 处。

当僵尸离房子比较近时,让僵尸头上顶奶油,那么就需要判断僵尸的位置。通过分析,僵尸移动的指令在如下位置:

0052AB25-7409-je0052AB300052AB27-D9462C-flddwordptr [esi+2C]
0052AB2A-D8642408-fsubdwordptr [esp+08]
0052AB2E-EB07-jmp0052AB370052AB30-D9462C-flddwordptr [esi+2C]
0052AB33-D8442408-fadddwordptr [esp+08]
0052AB37-837E2407-cmpdwordptr [esi+24],07 { 7 }
0052AB3B-D95E2C-fstpdwordptr [esi+2C]
0052AB3E-0F85A4000000-jne0052ABE8

0052AB2A 地址用来将僵尸的坐标向左移动,我们想要增加判断,需要开辟一块内存写入判断的代码,当离房子比较近的时候,改变僵尸头顶奶油的状态即可。我这里找的是 00400F00 这个位置写入,因为这个地方空白区域比较多,容易发挥。首先,修改 0052AB3E 处的代码,修改为一条 jmp 指令。为什么选这条指令修改?原因比较简单,因为指令长度够,也就是把 jne 改为 jmp 后,不影响其他指令。如果修改上面的代码,那么修改一条指令会影响后面的多条指令,毕竟影响过的指令,我们是要手动补上的。修改后的代码如下:

0052AB3E-E9BD63EDFF-jmp00400F000052AB43-90-nop

在 00400F00 写入判断和修改僵尸状态的代码,如下的代码:

00400F00-60-pushad00400F01-9C-pushfd00400F02-D9462C-flddwordptr [esi+2C]
00400F05-C7462C56FB4843-mov [esi+2C],4348FB56 { 200.98 }
00400F0C-D8562C-fcomdwordptr [esi+2C]
00400F0F-9BDFE0-wait:fstswax00400F12-9E-sahf00400F13-770A-ja00400F1F00400F15-C786B000000000010000-mov [esi+000000B0],00000100 { 256 }
00400F1F-D95E2C-fstpdwordptr [esi+2C]
00400F22-9D-popfd00400F23-61-popad00400F24-0F85BE9C1200-jne0052ABE800400F2A-E9159C1200-jmp0052AB44

上面的代码中,当僵尸的坐标小于 200.98 时,让僵尸头顶奶油,这里的 200.98 是单精度浮点数,因此在内存中的值是 4348FB56。

代码不多,还是比较简单的,效果如下:

1111111111.png

从上面的图中可以看出,僵尸走到红框的位置处头上都顶了奶油,并且站在那里不动了,而没有走到那里的僵尸,将会继续往前走,直到走到红框的位置处。

这样,全屏奶油的效果就达到了。

相关文章
|
6月前
|
移动开发 JavaScript 前端开发
分享86个鼠标特效,总有一款适合您
分享86个鼠标特效,总有一款适合您
84 1
分享86个鼠标特效,总有一款适合您
|
6月前
|
移动开发 JavaScript 前端开发
分享76个鼠标特效,总有一款适合您
分享76个鼠标特效,总有一款适合您
122 7
|
6月前
|
移动开发 JavaScript 前端开发
分享88个鼠标特效,总有一款适合您
分享88个鼠标特效,总有一款适合您
76 3
|
4月前
超好看的鼠标指针 折纸Gami
折纸风格的鼠标指针、共九种颜色风格:白、橙、粉、红、黄、蓝、绿、青、紫;三种尺寸:X32、X48、X64;一般情况下100%DPI推荐使用X48、大于125%DPI推荐使用X64版本!
79 6
Photoshop制作白色可爱音乐播放图标面板(一)
Photoshop制作白色可爱音乐播放图标面板
85 0
|
11月前
|
前端开发
HTML+CSS制作七夕跳动的红心动画效果
HTML+CSS制作七夕跳动的红心动画效果
背景图片铺不满全屏时处理
背景图片铺不满全屏时处理
|
存储 C++ Python
C++复刻:[流光按钮]+[悬浮波纹按钮]
[流光按钮]+[悬浮波纹按钮]
168 0
Photoshop制作白色可爱音乐播放图标面板(二)
Photoshop制作白色可爱音乐播放图标面板
67 0