From dfcbff522868deabcbd3e7db3de7b403da3ea7f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=98=9F=E5=A4=96=E4=B9=8B=E7=A5=9E?= Date: Tue, 3 May 2022 13:12:53 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BE=AE=E8=B0=83=E6=94=BB=E5=87=BB=E8=8C=83?= =?UTF-8?q?=E5=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/component/plant.py | 8 ++++---- source/state/level.py | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/source/component/plant.py b/source/component/plant.py index dade350..73abe08 100755 --- a/source/component/plant.py +++ b/source/component/plant.py @@ -290,7 +290,7 @@ class Plant(pg.sprite.Sprite): def canAttack(self, zombie): if (self.state != c.SLEEP and zombie.state != c.DIE and (not zombie.lostHead) and - self.rect.x <= zombie.rect.right and zombie.rect.left <= 800): + self.rect.x <= zombie.rect.right and zombie.rect.left <= c.SCREEN_WIDTH + 3): return True return False @@ -596,7 +596,7 @@ class PuffShroom(Plant): def canAttack(self, zombie): if (self.rect.x <= zombie.rect.right and - (self.rect.x + c.GRID_X_SIZE * 3.5 >= zombie.rect.x)): + (self.rect.x + c.GRID_X_SIZE * 3.5 >= zombie.rect.x) and (zombie.rect.left <= c.SCREEN_WIDTH + 3)): return True return False @@ -1149,10 +1149,10 @@ class StarFruit(Plant): if (self.rect.x >= zombie.rect.x) and (self.map_y == zombieMapY): # 对于同行且在杨桃后的僵尸 return True # 斜向上,理想直线方程为:f(zombie.rect.x) = -0.75*(zombie.rect.x - (self.rect.right - 5)) + self.rect.y - 10 - elif -100 <= (zombie.rect.y - (-0.75*(zombie.rect.x - (self.rect.right - 5)) + self.rect.y - 10)) <= 70: + elif -100 <= (zombie.rect.y - (-0.75*(zombie.rect.x - (self.rect.right - 5)) + self.rect.y - 10)) <= 70 and (zombie.rect.left <= c.SCREEN_WIDTH + 3): return True # 斜向下,理想直线方程为:f(zombie.rect.x) = zombie.rect.x + self.rect.y - self.rect.right - 15 - elif abs(zombie.rect.y - (zombie.rect.x + self.rect.y - self.rect.right - 15)) <= 70: + elif abs(zombie.rect.y - (zombie.rect.x + self.rect.y - self.rect.right - 15)) <= 70 and (zombie.rect.left <= c.SCREEN_WIDTH + 3): return True elif zombie.rect.left <= self.rect.x <= zombie.rect.right: return True diff --git a/source/state/level.py b/source/state/level.py index 3f7fb4f..fd09bc9 100644 --- a/source/state/level.py +++ b/source/state/level.py @@ -1180,6 +1180,6 @@ class Level(tool.State): surface.blit(self.mainMenu_button, self.mainMenu_button_rect) if not ((c.ZOMBIE_LIST in self.map_data.keys()) and self.map_data[c.SPAWN_ZOMBIES] == c.SPAWN_ZOMBIES_LIST): + self.showLevelProgress(surface) if self.current_time - self.showHugeWaveApprochingTime <= 2000: surface.blit(self.huge_wave_approching_image, self.huge_wave_approching_image_rect) - self.showLevelProgress(surface)