lnzwz / QtPvz

基于Qt的大战僵尸

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

植物大战僵尸

操作

植物左面的数字是快捷键,铲子快捷键是 ·(在1左面)。双击中键也可挖去植物。

挖去植物将返还一定阳光,根据植物剩余血量决定(最多为原来的$60%$)。

拖动或左键单击可以进行种植。右键单击或使用左下方的能量豆释放大招(只有部分攻击类植物可以使用),在释放大招时不能继续使用能量豆。

打死头上有金坷垃的僵尸可以增加1个金坷垃和能量豆,能量豆也可以点击“兑换“按钮用阳光兑换(会越来越贵)。金坷垃可以增加植物性能。

金坷垃等辅助植物位于附加卡槽。可以按$Z$或使用左下方的箭头切换卡槽。

当阳光不少于6000时,可以使用”加速回复“按钮,将阳关减半,并把大部分植物(除爆炸类)的冷却时间变为0,持续30秒。

按$C$键更换植物,$X$键显示植物和僵尸的血量,$SUN$切换阳光1.5倍,$KILL$杀死所有僵尸,空格暂停。

最左面一列的红框内的植物可以在这一列中移动。

种在紫色框中的植物属性将提升1.5倍。双击中键(或按F)可以调整紫色框的位置,调整一次花费50阳光。

点击“设置”按钮可以进行额外设置,包括禁用僵尸,设置僵尸血量百分比,调整行数等。

创造模式下,在“关卡”中输入$10x+y$并按$S$,将在第$y$行召唤第$x$种僵尸。

关卡

本游戏支持6种难度模式,81种关卡。

在关卡数字的末尾输入$+$或$-$可以改变难度。如“$69-$”,“$75+4$(等价于$75++++$)”

前60关为常规关卡。1~10普通,11~20迷雾(白天),21~30黑夜,31~40黑夜+迷雾,41~50水池,51~60混合(昼夜,迷雾循环)。

61~72为特色关卡:

61,62和76僵王(61滚卡,62种植,76无限阳光),63和69WSAD(69更难),64无尽(较难),65大蒜完全图,66我是僵尸(难度会颠倒),67狂锤(可自行调整速度),68镜面(较难),70柱子(排山倒海),71谁笑到最后(提前布阵),72砸罐(无尽),73我是植物(给出僵尸阵容并提前布阵),74种植+WSAD,75无限阳光。

在第51~60以及第62,64关中,可以按$C$键更换植物。

第64关僵尸的强度会随时间增加。

第66关的随机模式可以在最下面编辑框中输入种子,不输入视为随机种子。

第72关为无尽砸罐,每轮结束后,除最左边的6个外,可以额外选择12个保留位置。此关卡的灯可以透视周围。

将关卡数字+100后,可以使用全部植物,并随意更换卡槽。(自动模式则视为评估模式)

将关卡数字+200后,难度会略微增加,但不会超过下一难度。

将关卡数字+400后,可以随意移动植物。

将关卡数字+800后,僵尸将在中间生成。

第2048关为“2048”,即上下左右合成植物。

“快速模式”选择后,僵尸的强度会有所增加,同时会调整部分植物的数值,并提供加速格子,游戏时间将明显缩短。

若未正确输入关卡,点击“开始”后将弹出关卡选择对话框。

植物

目前有73种植物。

  1. 红色樱桃炸弹可以放在任意位置。
  2. 火焰植物具有1级溅射伤害,对于冰车有2倍伤害。
  3. 火焰会减弱冰冻效果,并造成额外伤害。
  4. 投手具有2级溅射伤害,冰西瓜有范围减速。
  5. 冰冻子弹通过火炬会提升其寒冰效果。
  6. 窝瓜可以无限抵挡子弹,且可以直接放置在水面上。
  7. 全息坚果底座不会被吃掉(但会被碾压掉)。
  8. 全息坚果在被啃食时不能自动回复。
  9. 被魅惑的僵尸遇到高坚果会停止移动。
  10. 大嘴花,窝瓜,土豆地雷均为范围伤害。大嘴花的咀嚼时间随吞噬数目呈正相关。
  11. 双头向日葵叠加种植变为多头向日葵,产量略微增加,并发射粉兔。
  12. 僵尸吃火炬,毒坚果,仙人掌,火炬会受到伤害,吃灯会冰冻,吃其他植物会恢复生命。
  13. 机枪可以发射具有不同效果的子弹。
  14. 三线射手有20%概率射出火球,10%概率射出冰球。
  15. 机枪子弹有1%概率附加魅惑。
  16. 杨桃为5个方向的穿透攻击,附带减速效果。
  17. 向左的箭头可以翻转发射类植物的攻击方向。
  18. 红十字可以治疗自己及周围8个植物(周围植物被啃食时不能治疗)。
  19. 荷叶在被僵尸踩时会损失生命值。
  20. 2种炮需按顺序拼接在一起才能使用。威力相当于樱桃炸弹。
  21. 白菜可以反弹子弹,并帮助周围植物分担子弹伤害。其血量介于大小坚果之间。
  22. 火箭可以使周围8个植物的工作速度增加25%(可以叠加,但会有损耗)。
  23. 只有南瓜支持包扎术,其余植物均不支持。
  24. 大葱每隔60s(转一圈)复制周围一圈的植物,在出现次数>=2中随机挑选(需要有空位)。
  25. 大蒜之间的橙色线可以对僵尸造成微弱伤害。为保证程序性能,请勿种植过多大蒜。
  26. 紫色樱桃炸弹在爆炸时附加魅惑效果(包括巨人和冰车)。
  27. 打火机和灭火器可以创造或消灭火焰。
  28. 火焰会降低植物的攻击速度,并对其造成伤害,但受火焰影响的植物可以提供火炬的功能。
  29. 植物结冰时若被摧毁,会在地面上留下冰。火炬可以融化植物结的冰。
  30. 粉色豌豆可以定向打击僵尸,伤害随距离增大而下降。右键设置目标,双击右键批量设置。
  31. 冰冻炸弹可以使3×3范围的僵尸冻结5s,并附加高等级冰冻。
  32. 黄色的射手/投手可以使僵尸中毒(持续对其造成伤害),冰冻可以提升中毒的伤害。
  33. 黄色的炸弹会对3×3范围的僵尸附加中毒效果。
  34. 射手类植物均具有暴击效果:10%造成2倍伤害,1%造成4倍伤害。
  35. 蓝色的炸弹可以范围传递中毒和冰冻的效果,并造成一定时间的冰冻。
  36. 冰豆可以减缓周围僵尸的寒冰消除速度。3个及以上的冰豆即可增加僵尸的寒冰效果。
  37. 僵尸啃食冰豆后,会被明显减速。啃食巴豆后,会立刻死亡。
  38. 回旋镖射手可以造成5次伤害。其子弹可以被火炬附加效果。
  39. 棱镜草通过双击,消耗200点阳光并对所有僵尸造成伤害。
  40. 血瓶可放置于植物上,根据该植物的阳光为其恢复生命。

僵尸

目前有26种僵尸。

  1. 僵尸的防具与本体生命一起计算,但穿透类对铁门和扶梯有额外伤害。
  2. 跳跳僵尸可以跳过除高坚果外的所有植物。
  3. 炸弹僵尸碰到植物会爆炸,范围4✖3(向左2向右1)。
  4. 末影人不会触发小推车,也不会造成游戏失败。
  5. 星星僵尸在碰到植物时释放技能:同行植物血量减少,周围僵尸(包括自身)向左快速移动。
  6. 僵尸碰到植物时会将左面的植物向左推一格。
  7. 僵尸只能被辣椒,炸弹,投手,仙人掌伤害。
  8. 喷火僵尸可以对2格内的植物(包括地刺)造成伤害。
  9. 旗帜僵尸可以缓慢治疗全场僵尸。
  10. 冰车僵尸在碾压植物时,自身血量会减少。
  11. 冰车僵尸会在行进路径上留下冰,僵尸在冰上的移动速度会加快。
  12. 巨人和冰车无法被魅惑。当其受到魅惑效果时,会损失一半的生命值。
  13. 扶梯僵尸创造的扶梯在被僵尸经过时,会对下面的植物造成伤害。
  14. 火药桶僵尸在受到火焰属性的爆炸伤害时,会释放火药桶:对植物造成大规模伤害。
  15. 超级巨人僵尸每间隔一段时间就会抛出小鬼。

金坷垃

每个位置最多5个。实际数量=位置上的数量+四周化肥数为5的位置数量。金坷垃可以提升该位置上植物的等级。 双击可除去金坷垃,但会造成一半的损失。

植物释放大招时不能在它的格子上使用金坷垃。

植物等级:

  1. 提升植物的工作速度,生命值,伤害量。
  2. 等级达到3/5/7/9……时,该植物增加1级溅射伤害。
  3. 等级达到4/6/8/10/14/18……时,该植物增加暴击率。
  4. 忧郁菇等级达到6时,攻击范围增大。
  5. 火炬的等级可以提升其伤害加成。
  6. 加速器的等级可以提升其加速效果。
  7. 双头喷菇等级达到3时,具有纵向伤害;达到5时,具有冰冻效果。
  8. 植物受到伤害时,会根据等级提升攻击速度。

注:等级机制尚不完善。

溅射等级

1级:1✖1 2级:1✖3 3级:2✖3 4级:3✖3 5级:4✖3 溅射伤害由子弹自身伤害和溅射等级决定。

默认状态下,火焰具有1级溅射,投手具有2级溅射。

存档机制

游戏过程中,使用“保存”生成存档。

任意时刻,使用“打开”打开之前的存档。

注:以下功能不稳定

游戏开始之前,选中“回放”并在右面输入文件夹的绝对路径,游戏正常开始后即在该文件夹下生成回放(若干.in文件)。

回放生成完毕后,建议立即进行备份。

游戏开始之前,选中“回放”并在右面输入文件夹的绝对路径,同时在关卡中输入负数即可开始回放。回放速度为关卡的绝对值。

回放时不能操作,否则会损坏存档。

在生成了回放的游戏过程中,暂停并把关卡改为-4,输入回溯时间戳,继续游戏并按“回溯”,即可回到之前状态(此功能极不稳定)。

本项目仅供学习,交流使用,请勿用于商业用途

About

基于Qt的大战僵尸

License:MIT License


Languages

Language:C++ 99.3%Language:CMake 0.7%