From 9ed9404c26854b2ad68e5ba6df3fe3f29b5ebe28 Mon Sep 17 00:00:00 2001 From: wcb_dell <497649129@qq.com> Date: Wed, 25 Nov 2020 23:48:58 +0800 Subject: [PATCH] add some --- resources/data/map/level_0.json | 1 + resources/data/map/level_1.json | 1 + resources/data/map/level_2.json | 1 + resources/data/map/level_3.json | 1 + .../map/{level_4.json => littleGame_1.json} | 1 + .../map/{level_5.json => littleGame_2.json} | 1 + .../graphics/Screen/littleGameButton.png | Bin 0 -> 42244 bytes source/component/menubar.py | 2 +- source/constants.py | 1 + source/state/level.py | 81 ++++++++++++++---- source/state/mainmenu.py | 20 ++++- 11 files changed, 92 insertions(+), 18 deletions(-) rename resources/data/map/{level_4.json => littleGame_1.json} (99%) rename resources/data/map/{level_5.json => littleGame_2.json} (98%) create mode 100644 resources/graphics/Screen/littleGameButton.png diff --git a/resources/data/map/level_0.json b/resources/data/map/level_0.json index c22fd75..c9c9ef0 100644 --- a/resources/data/map/level_0.json +++ b/resources/data/map/level_0.json @@ -1,6 +1,7 @@ { "background_type":0, "init_sun_value":500, + "shovel":1, "zombie_list":[ {"time":1000, "map_y":2, "name":"Zombie"} ] diff --git a/resources/data/map/level_1.json b/resources/data/map/level_1.json index cc14eda..ac5c4d4 100644 --- a/resources/data/map/level_1.json +++ b/resources/data/map/level_1.json @@ -1,6 +1,7 @@ { "background_type":0, "init_sun_value":5000, + "shovel":1, "zombie_list":[ {"time":20000, "map_y":0, "name":"Zombie"}, {"time":40000, "map_y":2, "name":"FlagZombie"}, diff --git a/resources/data/map/level_2.json b/resources/data/map/level_2.json index b3d9170..f3c452d 100644 --- a/resources/data/map/level_2.json +++ b/resources/data/map/level_2.json @@ -1,6 +1,7 @@ { "background_type":0, "init_sun_value":50, + "shovel":1, "zombie_list":[ {"time":20000, "map_y":0, "name":"Zombie"}, {"time":40000, "map_y":2, "name":"FlagZombie"}, diff --git a/resources/data/map/level_3.json b/resources/data/map/level_3.json index 04ad595..4fd8d99 100644 --- a/resources/data/map/level_3.json +++ b/resources/data/map/level_3.json @@ -1,6 +1,7 @@ { "background_type":1, "init_sun_value":50, + "shovel":1, "zombie_list":[ {"time":20000, "map_y":0, "name":"Zombie"}, {"time":40000, "map_y":2, "name":"ConeheadZombie"}, diff --git a/resources/data/map/level_4.json b/resources/data/map/littleGame_1.json similarity index 99% rename from resources/data/map/level_4.json rename to resources/data/map/littleGame_1.json index aaa525b..d03ece5 100644 --- a/resources/data/map/level_4.json +++ b/resources/data/map/littleGame_1.json @@ -1,6 +1,7 @@ { "background_type":0, "choosebar_type":1, + "shovel":1, "card_pool":[ {"name":"Peashooter"}, {"name":"SnowPea"}, diff --git a/resources/data/map/level_5.json b/resources/data/map/littleGame_2.json similarity index 98% rename from resources/data/map/level_5.json rename to resources/data/map/littleGame_2.json index 343c68b..ac4bbf8 100644 --- a/resources/data/map/level_5.json +++ b/resources/data/map/littleGame_2.json @@ -1,6 +1,7 @@ { "background_type":4, "choosebar_type":2, + "shovel":0, "card_pool":[ {"name":"WallNutBowling"}, {"name":"RedWallNutBowling"} diff --git a/resources/graphics/Screen/littleGameButton.png b/resources/graphics/Screen/littleGameButton.png new file mode 100644 index 0000000000000000000000000000000000000000..affaec1e6a930c9fca41dcd79b7938f551e1ad5b GIT binary patch literal 42244 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

B{dgXVM)zzHwwK0IY;yB9of$tPA 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 literal 0 HcmV?d00001 diff --git a/source/component/menubar.py b/source/component/menubar.py index 58730d7..3351bfe 100644 --- a/source/component/menubar.py +++ b/source/component/menubar.py @@ -380,7 +380,7 @@ class MoveBar(): def __init__(self, card_pool): self.loadFrame(c.MOVEBAR_BACKGROUND) self.rect = self.image.get_rect() - self.rect.x = 90 + self.rect.x = 20 self.rect.y = 0 self.card_start_x = self.rect.x + 8 diff --git a/source/constants.py b/source/constants.py index e7bb32e..a0f44b1 100644 --- a/source/constants.py +++ b/source/constants.py @@ -34,6 +34,7 @@ BIG_MENU = 'bigMenu' RETURN_BUTTON = 'returnButton' RESTART_BUTTON = 'restartButton' MAINMENU_BUTTON = 'mainMenuButton' +LITTLEGAME_BUTTON = 'littleGameButton' # 小铲子 SHOVEL = 'shovel' SHOVEL_BOX = 'shovelBox' diff --git a/source/state/level.py b/source/state/level.py index 1202828..1392207 100644 --- a/source/state/level.py +++ b/source/state/level.py @@ -24,7 +24,10 @@ class Level(tool.State): self.initState() def loadMap(self): - map_file = 'level_' + str(self.game_info[c.LEVEL_NUM]) + '.json' + if c.LITTLEGAME_BUTTON in self.game_info: + map_file = 'littleGame_' + str(self.game_info[c.LEVEL_NUM]) + '.json' + else: + map_file = 'level_' + str(self.game_info[c.LEVEL_NUM]) + '.json' file_path = os.path.join('resources', 'data', 'map', map_file) # 最后一关之后应该结束了 try: @@ -36,6 +39,11 @@ class Level(tool.State): self.done = True self.next = c.MAIN_MENU return + if self.map_data[c.SHOVEL] == 0: + self.hasShovel = False + else: + self.hasShovel = True + def setupBackground(self): img_index = self.map_data[c.BACKGROUND_TYPE] @@ -128,7 +136,7 @@ class Level(tool.State): # 是否拖住植物或者铲子 self.drag_plant = False - self.drag_plant = False + self.drag_shovel = False self.hint_image = None self.hint_plant = False @@ -143,17 +151,18 @@ class Level(tool.State): self.setupZombies() self.setupCars() - # 小游戏才有CHOOSEBAR_TYPE,小游戏没有铲子 - if c.CHOOSEBAR_TYPE not in self.map_data: + # 地图有铲子才添加铲子 + if self.hasShovel: # 导入小铲子 frame_rect = [0, 0, 71, 67] self.shovel = tool.get_image_menu(tool.GFX[c.SHOVEL], *frame_rect, c.BLACK, 1.1) self.shovel_rect = self.shovel.get_rect() frame_rect = [0, 0, 77, 75] + self.shovel_positon = (550, 2) self.shovel_box = tool.get_image_menu(tool.GFX[c.SHOVEL_BOX], *frame_rect, c.BLACK, 1.1) self.shovel_box_rect = self.shovel_box.get_rect() - self.shovel_rect.x = self.shovel_box_rect.x = 550 - self.shovel_rect.y = self.shovel_box_rect.y = 2 + self.shovel_rect.x = self.shovel_box_rect.x = self.shovel_positon[0] + self.shovel_rect.y = self.shovel_box_rect.y = self.shovel_positon[1] self.setupLittleMenu() @@ -222,11 +231,22 @@ class Level(tool.State): return True return False - # 检查小铲子有没有被点击 + # 用小铲子移除植物 + def shovelRemovePlant(self, mouse_pos): + x, y = mouse_pos + map_x, map_y = self.map.getMapIndex(x, y) + for i in self.plant_groups[map_y]: + if(x >= i.rect.x and x <= i.rect.right and + y >= i.rect.y and y <= i.rect.bottom): + i.kill() + return + + # 检查小铲子的位置有没有被点击 + # 方便放回去 def checkShovelClick(self, mouse_pos): x, y = mouse_pos - if(x >= self.mainMenu_button_rect.x and x <= self.mainMenu_button_rect.right and - y >= self.mainMenu_button_rect.y and y <= self.mainMenu_button_rect.bottom): + if(x >= self.shovel_box_rect.x and x <= self.shovel_box_rect.right and + y >= self.shovel_box_rect.y and y <= self.shovel_box_rect.bottom): return True return False @@ -272,8 +292,17 @@ class Level(tool.State): # 暂停 显示菜单 self.showLittleMenu = True elif self.checkShovelClick(mouse_pos): - self.drag_shovel = True - + self.drag_shovel = not self.drag_shovel + if self.drag_shovel: + # 小铲子要隐藏鼠标 + pg.mouse.set_visible(False) + else: + self.removeMouseImagePlus() + elif self.drag_shovel: + # 移出这地方的植物 + self.shovelRemovePlant(mouse_pos) + + # 拖动植物或者铲子 if not self.drag_plant and mouse_pos and mouse_click[0]: result = self.menubar.checkCardClick(mouse_pos) if result: @@ -288,6 +317,9 @@ class Level(tool.State): self.addPlant() elif mouse_pos is None: self.setupHintImage() + elif self.drag_shovel: + if mouse_click[1]: + self.removeMouseImagePlus() if self.produce_sun: @@ -296,7 +328,9 @@ class Level(tool.State): map_x, map_y = self.map.getRandomMapIndex() x, y = self.map.getMapGridPos(map_x, map_y) self.sun_group.add(plant.Sun(x, 0, x, y)) - if not self.drag_plant and mouse_pos and mouse_click[0]: + + # 检查有没有捡到阳光 + if not self.drag_plant and not self.drag_shovel and mouse_pos and mouse_click[0]: for sun in self.sun_group: if sun.checkCollision(mouse_pos[0], mouse_pos[1]): self.menubar.increaseSunValue(sun.sun_value) @@ -331,6 +365,7 @@ class Level(tool.State): x, y = pg.mouse.get_pos() return self.map.showPlant(x, y) + # 种植物 def addPlant(self): pos = self.canSeedPlant() if pos is None: @@ -444,6 +479,13 @@ class Level(tool.State): self.hint_image = None self.hint_plant = False + # 移除小铲子 + def removeMouseImagePlus(self): + pg.mouse.set_visible(True) + self.drag_shovel = False + self.shovel_rect.x = self.shovel_positon[0] + self.shovel_rect.y = self.shovel_positon[1] + def checkBulletCollisions(self): collided_func = pg.sprite.collide_circle_ratio(0.7) for i in range(self.map_y_len): @@ -650,6 +692,12 @@ class Level(tool.State): self.mouse_rect.centerx = x self.mouse_rect.centery = y surface.blit(self.mouse_image, self.mouse_rect) + + def drawMouseShowPlus(self, surface): + x, y = pg.mouse.get_pos() + self.shovel_rect.centerx = x + self.shovel_rect.centery = y + surface.blit(self.shovel, self.shovel_rect) def drawZombieFreezeTrap(self, i, surface): for zombie in self.zombie_groups[i]: @@ -661,9 +709,10 @@ class Level(tool.State): if self.state == c.CHOOSE: self.panel.draw(surface) elif self.state == c.PLAY: - # 画铲子 - surface.blit(self.shovel_box, self.shovel_box_rect) - surface.blit(self.shovel, self.shovel_rect) + if self.hasShovel: + # 画铲子 + surface.blit(self.shovel_box, self.shovel_box_rect) + surface.blit(self.shovel, self.shovel_rect) # 画小菜单 surface.blit(self.little_menu, self.little_menu_rect) @@ -682,7 +731,7 @@ class Level(tool.State): if self.drag_plant: self.drawMouseShow(surface) - if self.drag_shovel: + if self.hasShovel and self.drag_shovel: self.drawMouseShowPlus(surface) if self.showLittleMenu: diff --git a/source/state/mainmenu.py b/source/state/mainmenu.py index 4f17dc8..9365945 100644 --- a/source/state/mainmenu.py +++ b/source/state/mainmenu.py @@ -46,6 +46,13 @@ class Menu(tool.State): self.exit_rect.x = 690 self.exit_rect.y = 400 + # 小游戏 + frame_rect = [0, 0, 317, 139] + self.option_littleGame = tool.get_image_menu(tool.GFX[c.LITTLEGAME_BUTTON], *frame_rect, c.BLACK, 0.9) + self.option_littleGame_rect = self.option_littleGame.get_rect() + self.option_littleGame_rect.x = 425 + self.option_littleGame_rect.y = 200 + self.option_start = 0 self.option_timer = 0 self.option_clicked = False @@ -66,6 +73,15 @@ class Menu(tool.State): self.done = True self.next = c.EXIT + # 检查有没有按到小游戏 + def checkLittleGameClick(self, mouse_pos): + x, y = mouse_pos + if(x >= self.option_littleGame_rect.x and x <= self.option_littleGame_rect.right and + y >= self.option_littleGame_rect.y and y <= self.option_littleGame_rect.bottom): + self.done = True + # 确实小游戏还是用的level + self.persist[c.LITTLEGAME_BUTTON] = True + def update(self, surface, current_time, mouse_pos, mouse_click): self.current_time = self.game_info[c.CURRENT_TIME] = current_time @@ -74,6 +90,7 @@ class Menu(tool.State): if mouse_pos: self.checkOptionClick(mouse_pos) self.checkExitClick(mouse_pos) + self.checkLittleGameClick(mouse_pos) else: # 点到后播放动画 if(self.current_time - self.option_timer) > 200: @@ -88,4 +105,5 @@ class Menu(tool.State): surface.blit(self.bg_image, self.bg_rect) surface.blit(self.option_image, self.option_rect) - surface.blit(self.option_exit, self.exit_rect) \ No newline at end of file + surface.blit(self.option_exit, self.exit_rect) + surface.blit(self.option_littleGame, self.option_littleGame_rect) \ No newline at end of file