进度
-
实现右键铲除植物
-
实现点击1、2、3选择植物并更新卡槽箭头
# 原理很简单,实现起来有些复杂,以后看情况进行优化吧
mouse_pressed = [None, False, False, False]
# 点击事件
elif event.type == pygame.KEYDOWN:
if 49 <= event.key <= 49+2:
gameManager.check_key(event.key-49)
elif event.type == pygame.MOUSEBUTTONDOWN:
mouse_pressed[event.button] = True
elif event.type == pygame.MOUSEBUTTONUP:
mouse_pressed[event.button] = False
mouse_pos = pygame.mouse.get_pos()
gameManager.check_click(mouse_pos, event.button)
# 控制系统的改动
def check_click(self, click_pos, click_type):
# 点击的是卡槽
if click_type == 1 and click_pos[1] <= Benchmark[1]:
(a, b) = self.seedbank.cards_BM
(x, y) = click_pos
if a <= x and b <= y <= b + 70:
self.seedbank.nowpt = (x - a) // 50
# 点击的是草坪
else:
logic_pos = [(click_pos[i] - Benchmark[i]) // Cell[i] for i in range(2)]
if 0 <= logic_pos[0] <= 8 and 0 <= logic_pos[1] <= 4:
if click_type == 1:
self.gameMap.deal_events(logic_pos, self.seedbank.nowpt)
elif click_type == 3:
self.gameMap.deal_events(logic_pos, -1)
# 地图的改动
def deal_events(self, logic_pos, key):
(col, row) = logic_pos
if 0 <= key < len(Plants):
self.all_GrRows[row].add(Plants[key], col)
elif key == -1:
self.all_GrRows[row].dig(col)
# 植物类添加全局变量
Plants = (PL_peashooter, PL_sunflower, PL_nut)
- 加入小推车,实现其静止、推动动画
# 根据逻辑,小推车是由该行的植物行控制的,在GrassRow下添加对应代码
self.LC_surf = pygame.image.load('assets/LawnCleaner.png')
self.LC_x = 0
self.LC_y = Benchmark[1]+self.row*Cell[1]