From 02edab3516ac062ce87935dbd97796e9df7298d0 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, 10 May 2022 22:38:05 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=92=91=E6=9D=86=E8=B7=B3?= =?UTF-8?q?=E9=9F=B3=E6=95=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resources/data/map/level_0.json | 3 ++- resources/sound/polevaultjump.ogg | Bin 0 -> 11476 bytes source/component/plant.py | 4 ++-- source/component/zombie.py | 12 +++++++++--- source/constants.py | 2 +- source/state/level.py | 7 ++++--- 6 files changed, 18 insertions(+), 10 deletions(-) create mode 100644 resources/sound/polevaultjump.ogg diff --git a/resources/data/map/level_0.json b/resources/data/map/level_0.json index d2c8986..dc35859 100644 --- a/resources/data/map/level_0.json +++ b/resources/data/map/level_0.json @@ -14,7 +14,8 @@ {"time":7000, "map_y":4, "name":"ScreenDoorZombie"}, {"time":8000, "map_y":4, "name":"ScreenDoorZombie"}, {"time":0, "map_y":1, "name":"NewspaperZombie"}, - {"time":0, "map_y":0, "name":"PoleVaultingZombie"}, + {"time":3000, "map_y":0, "name":"PoleVaultingZombie"}, + {"time":0, "map_y":0, "name":"FootballZombie"}, {"time":0, "map_y":2, "name":"ConeheadDuckyTubeZombie"}, {"time":80000, "map_y":2, "name":"ConeheadDuckyTubeZombie"} ] diff --git a/resources/sound/polevaultjump.ogg b/resources/sound/polevaultjump.ogg new file mode 100644 index 0000000000000000000000000000000000000000..4e28f18eb0b9e572a193fdbc01f0b9d287dfa148 GIT binary patch literal 11476 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 KI>Qyh@_ztBqdfuu literal 0 HcmV?d00001 diff --git a/source/component/plant.py b/source/component/plant.py index 24abab6..10c586e 100755 --- a/source/component/plant.py +++ b/source/component/plant.py @@ -511,10 +511,10 @@ class WallNut(Plant): self.loadFrames(self.cracked2_frames, cracked2_frames_name, 1) def idling(self): - if not self.cracked1 and self.health <= c.WALLNUT_CRACKED1_HEALTH: + if (not self.cracked1) and self.health <= c.WALLNUT_CRACKED1_HEALTH: self.changeFrames(self.cracked1_frames) self.cracked1 = True - elif not self.cracked2 and self.health <= c.WALLNUT_CRACKED2_HEALTH: + elif (not self.cracked2) and self.health <= c.WALLNUT_CRACKED2_HEALTH: self.changeFrames(self.cracked2_frames) self.cracked2 = True diff --git a/source/component/zombie.py b/source/component/zombie.py index 8670e6f..41f087e 100755 --- a/source/component/zombie.py +++ b/source/component/zombie.py @@ -884,11 +884,14 @@ class PoleVaultingZombie(Zombie): self.frames = self.walk_before_jump_frames - def setJump(self, successfullyJumped): + def setJump(self, successfullyJumped, jumpX): if not self.jumping: self.jumping = True self.changeFrames(self.jump_frames) self.successfullyJumped = successfullyJumped + self.jumpX = jumpX + # 播放跳跃音效 + pg.mixer.Sound(os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(__file__))) ,"resources", "sound", "polevaultjump.ogg")).play() def animation(self): if self.state == c.FREEZE: @@ -898,7 +901,10 @@ class PoleVaultingZombie(Zombie): if (self.current_time - self.animate_timer) > (self.animate_interval * self.getTimeRatio()): self.frame_index += 1 if self.jumping and (not self.jumped): - self.rect.x -= 5 + if self.successfullyJumped: + self.rect.x -= 5 + else: + self.rect.x -= 1 if self.frame_index >= self.frame_num: if self.state == c.DIE: self.kill() @@ -907,7 +913,7 @@ class PoleVaultingZombie(Zombie): if self.jumping and (not self.jumped): self.changeFrames(self.walk_frames) if self.successfullyJumped: - self.rect.x -= c.GRID_X_SIZE * 1.3 + self.rect.centerx = self.jumpX self.jumped = True self.speed = 1.04 self.animate_timer = self.current_time diff --git a/source/constants.py b/source/constants.py index ba2605f..87357ae 100755 --- a/source/constants.py +++ b/source/constants.py @@ -166,7 +166,7 @@ PANEL_Y_INTERNAL = 73 PANEL_X_INTERNAL = 53 BAR_CARD_X_INTERNAL = 51 CARD_MAX_NUM = 10 # 这里以后可以增加解锁功能,从最初的6格逐渐解锁到10格 -CARD_LIST_NUM = 0#CARD_MAX_NUM +CARD_LIST_NUM = CARD_MAX_NUM # 所选植物信息索引 PLANT_NAME_INDEX = 0 diff --git a/source/state/level.py b/source/state/level.py index 0dac3cc..11ec572 100644 --- a/source/state/level.py +++ b/source/state/level.py @@ -1070,10 +1070,11 @@ class Level(tool.State): # 撑杆跳的特殊情况 if zombie.name in {c.POLE_VAULTING_ZOMBIE} and (not zombie.jumped): map_x, map_y = self.map.getMapIndex(targetPlant.rect.centerx, targetPlant.rect.bottom) + jumpX = targetPlant.rect.x - c.GRID_X_SIZE * 0.7 if c.TALLNUT in self.map.map[map_y][map_x][c.MAP_PLANT]: - zombie.setJump(False) + zombie.setJump(False, jumpX) else: - zombie.setJump(True) + zombie.setJump(True, jumpX) continue if targetPlant.name == c.WALLNUTBOWLING: @@ -1279,7 +1280,7 @@ class Level(tool.State): if plant.canAttack(zombie): plant.setAttack(zombie, self.zombie_groups[i]) break - elif plant.name in {c.WALLNUTBOWLING, c.REDWALLNUTBOWLING}: + elif plant.name in {c.WALLNUTBOWLING, c.REDWALLNUTBOWLING, c.WALLNUT, c.TALLNUT}: pass else: can_attack = False