【Python】毕设 仿PVZ 23.3.22

之前的进度忘了写文章记录了,从今天开始记录日志

今日进度:

  1. 在Map类里初始化5个GrassRow对象,并绘制背景(草地)
(x, y) = self.Benchmark
self.all_GrRows = [GrassRow(i, (x, y+self.cell_h*i)) for i in range(5)]
self.all_ZBQs = [ZBQueue((1100, y+self.cell_h*i)) for i in range(5)]
  1. 点击种植植物
for event in pygame.event.get():
    if event.type == pygame.QUIT:
        pygame.quit()
        sys.exit()
    elif event.type == pygame.MOUSEBUTTONDOWN:
        lm_pressed = True
    elif event.type == pygame.MOUSEBUTTONUP:
        if lm_pressed is True:
            lm_pressed = False
            mouse_pos = pygame.mouse.get_pos()
            logic_pos = [(i - 100) // 100 for i in mouse_pos]
            if 0 <= logic_pos[0] <= 8 and 0 <= logic_pos[1] <= 4:
                gameMap.deal_events(logic_pos, 1)

不足之处:植物的种植取决于鼠标左键松开的位置
3. 按“1、2、3”键切换植物

# Map类添加如下代码
def deal_events(self, logic_pos, key):
    if key is None:
        print("呃呃呃")
        return
    col = logic_pos[0]
    row = logic_pos[1]
    if key == 0:
        self.all_GrRows[row].add(PL_peashooter, col)
    elif key == 1:
        self.all_GrRows[row].add(PL_sunflower, col)
    elif key == 2:
        self.all_GrRows[row].add(PL_nut, col)

# 主游戏添加全局变量记录每次按键
key_record = None

# 主进程添加如下:
for event in pygame.event.get():
	if ...
	elif event.type == pygame.KEYDOWN:
	   key_record = event.key - 49
	elif ...

# 松开按键处改动
gameMap.deal_events(logic_pos, key_record)

效果

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值