From 5bc89e1b815bbfe403721b3534070790a2b81347 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=98=9F=E5=A4=96=E4=B9=8B=E7=A5=9E?= Date: Sat, 14 May 2022 23:11:55 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=A0=E5=85=A5=E5=80=AD=E7=93=9C=E7=A2=BE?= =?UTF-8?q?=E5=8E=8B=E9=9F=B3=E6=95=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resources/sound/squashing.ogg | Bin 0 -> 9384 bytes source/component/plant.py | 2 ++ source/state/level.py | 6 +++++- 3 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 resources/sound/squashing.ogg diff --git a/resources/sound/squashing.ogg b/resources/sound/squashing.ogg new file mode 100644 index 0000000000000000000000000000000000000000..456950c095b1d708c53e13b1339f062f35b358e5 GIT binary patch literal 9384 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 literal 0 HcmV?d00001 diff --git a/source/component/plant.py b/source/component/plant.py index b066e6d..f7c310a 100755 --- a/source/component/plant.py +++ b/source/component/plant.py @@ -801,6 +801,8 @@ class Squash(Plant): self.health = 0 # 避免僵尸在原位啃食 self.mapPlantsSet.remove(c.SQUASH) self.kill() + # 播放碾压音效 + pg.mixer.Sound(os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(__file__))) ,"resources", "sound", "squashing.ogg")).play() elif self.aim_timer == 0: # 锁定目标时播放音效 pg.mixer.Sound(os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(__file__))) ,"resources", "sound", "squashHmm.ogg")).play() diff --git a/source/state/level.py b/source/state/level.py index f109d70..e88f727 100644 --- a/source/state/level.py +++ b/source/state/level.py @@ -1084,6 +1084,10 @@ class Level(tool.State): elif plant.name in {c.LILYPAD, "花盆(未实现)"}: attackableBackupPlant.append(plant) # 注意要剔除掉两个“假植物”,以及不能被啃的地刺 + elif plant.name == c.SQUASH: + # 跳起后不得被啃食 + if not plant.squashing: + attackableCommonPlants.append(plant) elif plant.name not in {c.HOLE, c.ICE_FROZEN_PLOT, c.GRAVE, c.SPIKEWEED}: attackableCommonPlants.append(plant) else: @@ -1280,7 +1284,7 @@ class Level(tool.State): for zombie in self.zombie_groups[i]: # 双判断:发生碰撞或在攻击范围内 if ((pg.sprite.collide_mask(zombie, targetPlant)) or - (abs(zombie.rect.centerx - x) <= targetPlant.explode_x_range)): + (abs(zombie.rect.centerx - targetPlant.rect.centerx) <= targetPlant.explode_x_range)): zombie.setDamage(1800, damageType=c.ZOMBIE_RANGE_DAMAGE) targetPlant.boomed = True elif targetPlant.name == c.SQUASH: