From d054ff498ba58356e9886064ae9c1a62fb0585a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=98=9F=E5=A4=96=E4=B9=8B=E7=A5=9E?= Date: Wed, 1 Jun 2022 13:39:56 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BF=9B=E4=B8=80=E6=AD=A5=E5=B0=86=E5=B8=B8?= =?UTF-8?q?=E6=95=B0=E6=80=A7=E5=86=85=E5=AE=B9=E6=B1=87=E6=80=BB=E5=88=B0?= =?UTF-8?q?constants.py=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/component/menubar.py | 139 +++--------------------------------- source/constants.py | 125 ++++++++++++++++++++++++++++++++ source/state/level.py | 2 +- 3 files changed, 134 insertions(+), 132 deletions(-) diff --git a/source/component/menubar.py b/source/component/menubar.py index fd0ced8..051211d 100755 --- a/source/component/menubar.py +++ b/source/component/menubar.py @@ -4,129 +4,6 @@ import pygame as pg from .. import tool from .. import constants as c -plantInfo = (# 元组 (植物名称, 卡片名称, 阳光, 冷却时间) - (c.PEASHOOTER, - c.CARD_PEASHOOTER, - 100, - 7500), - (c.SUNFLOWER, - c.CARD_SUNFLOWER, - 50, - 7500), - (c.CHERRYBOMB, - c.CARD_CHERRYBOMB, - 150, - 50000), - (c.WALLNUT, - c.CARD_WALLNUT, - 50, - 30000), - (c.POTATOMINE, - c.CARD_POTATOMINE, - 25, - 30000), - (c.SNOWPEASHOOTER, - c.CARD_SNOWPEASHOOTER, - 175, - 7500), - (c.CHOMPER, - c.CARD_CHOMPER, - 150, - 7500), - (c.REPEATERPEA, - c.CARD_REPEATERPEA, - 200, - 7500), - (c.PUFFSHROOM, - c.CARD_PUFFSHROOM, - 0, - 7500), - (c.SUNSHROOM, - c.CARD_SUNSHROOM, - 25, - 7500), - (c.FUMESHROOM, - c.CARD_FUMESHROOM, - 75, - 7500), - (c.GRAVEBUSTER, - c.CARD_GRAVEBUSTER, - 75, - 7500), - (c.HYPNOSHROOM, - c.CARD_HYPNOSHROOM, - 75, - 30000), - (c.SCAREDYSHROOM, - c.CARD_SCAREDYSHROOM, - 25, - 7500), - (c.ICESHROOM, - c.CARD_ICESHROOM, - 75, - 50000), - (c.DOOMSHROOM, - c.CARD_DOOMSHROOM, - 75, - 50000), - (c.LILYPAD, - c.CARD_LILYPAD, - 25, - 7500), - (c.SQUASH, - c.CARD_SQUASH, - 50, - 30000), - (c.TANGLEKLEP, - c.CARD_TANGLEKLEP, - 25, - 30000), - (c.THREEPEASHOOTER, - c.CARD_THREEPEASHOOTER, - 325, - 7500), - (c.JALAPENO, - c.CARD_JALAPENO, - 125, - 50000), - (c.SPIKEWEED, - c.CARD_SPIKEWEED, - 100, - 7500), - (c.TORCHWOOD, - c.CARD_TORCHWOOD, - 175, - 7500), - (c.TALLNUT, - c.CARD_TALLNUT, - 125, - 30000), - (c.SEASHROOM, - c.CARD_SEASHROOM, - 125, - 30000), - (c.STARFRUIT, - c.CARD_STARFRUIT, - 125, - 7500), - (c.COFFEEBEAN, - c.CARD_COFFEEBEAN, - 75, - 7500), - # 应当保证这两个在一般模式下不可选的特殊植物恒在最后 - (c.WALLNUTBOWLING, - c.CARD_WALLNUT, - 0, - 0), - (c.REDWALLNUTBOWLING, - c.CARD_REDWALLNUT, - 0, - 0), - ) - -# 指定了哪些卡可选 -cards_to_choose = range(len(plantInfo) - 2) - def getSunValueImage(sun_value): # for pack, must include ttf @@ -148,7 +25,7 @@ def getSunValueImage(sun_value): def getCardPool(data): card_pool = [] for card in data: - for i,name in enumerate(plantInfo): + for i,name in enumerate(c.PLANT_CARD_INFO): if name[c.PLANT_NAME_INDEX] == card: card_pool.append(i) break @@ -156,14 +33,14 @@ def getCardPool(data): class Card(): def __init__(self, x, y, index, scale=0.5): - self.loadFrame(plantInfo[index][c.CARD_INDEX], scale) + self.loadFrame(c.PLANT_CARD_INFO[index][c.CARD_INDEX], scale) self.rect = self.orig_image.get_rect() self.rect.x = x self.rect.y = y self.index = index - self.sun_cost = plantInfo[index][c.SUN_INDEX] - self.frozen_time = plantInfo[index][c.FROZEN_INDEX] + self.sun_cost = c.PLANT_CARD_INFO[index][c.SUN_INDEX] + self.frozen_time = c.PLANT_CARD_INFO[index][c.FROZEN_INDEX] self.frozen_timer = -self.frozen_time self.refresh_timer = 0 self.select = True @@ -285,7 +162,7 @@ class MenuBar(): for card in self.card_list: if card.checkMouseClick(mouse_pos): if card.canClick(self.sun_value, self.current_time): - result = (plantInfo[card.index][c.PLANT_NAME_INDEX], card) + result = (c.PLANT_CARD_INFO[card.index][c.PLANT_NAME_INDEX], card) break return result @@ -306,7 +183,7 @@ class MenuBar(): def setCardFrozenTime(self, plant_name): for card in self.card_list: - if plantInfo[card.index][c.PLANT_NAME_INDEX] == plant_name: + if c.PLANT_CARD_INFO[card.index][c.PLANT_NAME_INDEX] == plant_name: card.setFrozenTime(self.current_time) break @@ -522,8 +399,8 @@ class MoveBar(): y = 6 index = random.randint(0, len(self.card_pool) - 1) card_index = self.card_pool[index] - card_name = plantInfo[card_index][c.CARD_INDEX] + '_move' - plant_name = plantInfo[card_index][c.PLANT_NAME_INDEX] + card_name = c.PLANT_CARD_INFO[card_index][c.CARD_INDEX] + '_move' + plant_name = c.PLANT_CARD_INFO[card_index][c.PLANT_NAME_INDEX] self.card_list.append(MoveCard(x, y, card_name, plant_name)) return True diff --git a/source/constants.py b/source/constants.py index 99c82bf..5543e45 100755 --- a/source/constants.py +++ b/source/constants.py @@ -368,6 +368,131 @@ CARD_DOOMSHROOM = 'card_doomshroom' CARD_GRAVEBUSTER = 'card_gravebuster' CARD_FUMESHROOM = 'card_fumeshroom' + +# 植物卡片信息(包括植物名称, 卡片名称, 阳光, 冷却时间) +PLANT_CARD_INFO = (# 元组 (植物名称, 卡片名称, 阳光, 冷却时间) + (PEASHOOTER, + CARD_PEASHOOTER, + 100, + 7500), + (SUNFLOWER, + CARD_SUNFLOWER, + 50, + 7500), + (CHERRYBOMB, + CARD_CHERRYBOMB, + 150, + 50000), + (WALLNUT, + CARD_WALLNUT, + 50, + 30000), + (POTATOMINE, + CARD_POTATOMINE, + 25, + 30000), + (SNOWPEASHOOTER, + CARD_SNOWPEASHOOTER, + 175, + 7500), + (CHOMPER, + CARD_CHOMPER, + 150, + 7500), + (REPEATERPEA, + CARD_REPEATERPEA, + 200, + 7500), + (PUFFSHROOM, + CARD_PUFFSHROOM, + 0, + 7500), + (SUNSHROOM, + CARD_SUNSHROOM, + 25, + 7500), + (FUMESHROOM, + CARD_FUMESHROOM, + 75, + 7500), + (GRAVEBUSTER, + CARD_GRAVEBUSTER, + 75, + 7500), + (HYPNOSHROOM, + CARD_HYPNOSHROOM, + 75, + 30000), + (SCAREDYSHROOM, + CARD_SCAREDYSHROOM, + 25, + 7500), + (ICESHROOM, + CARD_ICESHROOM, + 75, + 50000), + (DOOMSHROOM, + CARD_DOOMSHROOM, + 75, + 50000), + (LILYPAD, + CARD_LILYPAD, + 25, + 7500), + (SQUASH, + CARD_SQUASH, + 50, + 30000), + (TANGLEKLEP, + CARD_TANGLEKLEP, + 25, + 30000), + (THREEPEASHOOTER, + CARD_THREEPEASHOOTER, + 325, + 7500), + (JALAPENO, + CARD_JALAPENO, + 125, + 50000), + (SPIKEWEED, + CARD_SPIKEWEED, + 100, + 7500), + (TORCHWOOD, + CARD_TORCHWOOD, + 175, + 7500), + (TALLNUT, + CARD_TALLNUT, + 125, + 30000), + (SEASHROOM, + CARD_SEASHROOM, + 125, + 30000), + (STARFRUIT, + CARD_STARFRUIT, + 125, + 7500), + (COFFEEBEAN, + CARD_COFFEEBEAN, + 75, + 7500), + # 应当保证这两个在一般模式下不可选的特殊植物恒在最后 + (WALLNUTBOWLING, + CARD_WALLNUT, + 0, + 0), + (REDWALLNUTBOWLING, + CARD_REDWALLNUT, + 0, + 0), + ) + +# 指定了哪些卡可选 +CARDS_TO_CHOOSE = range(len(PLANT_CARD_INFO) - 2) + # 子弹信息 # 子弹类型 BULLET_PEA = 'PeaNormal' diff --git a/source/state/level.py b/source/state/level.py index e89f63d..e4350fb 100644 --- a/source/state/level.py +++ b/source/state/level.py @@ -364,7 +364,7 @@ class Level(tool.State): def initChoose(self): self.state = c.CHOOSE - self.panel = menubar.Panel(menubar.cards_to_choose, self.map_data[c.INIT_SUN_NAME]) + self.panel = menubar.Panel(c.CARDS_TO_CHOOSE, self.map_data[c.INIT_SUN_NAME]) # 播放选卡音乐 pg.mixer.music.stop()