进度
- 实现AI结束部分,即击败所有僵尸,获得胜利
# pve 生成僵尸AI
class ZBcreateAI:
clock = 1000
t = clock
status = 'ready1'
time = 0
def __init__(self, amap):
self.image_tide1 = pygame.image.load('assets/tide1.png')
self.image_tide2 = pygame.image.load('assets/tide2.png')
self.map = amap
def run(self):
# 沙漏漏完,在随机行添加ZB
if self.t == 0:
arow = random.randint(0, 4)
self.map.all_ZBQs[arow].push(ZB_normal)
# 沙漏计时
self.t -= 1
if self.t < 0:
delta = int(self.clock * 0.3)
self.t = random.randint(self.clock - delta, self.clock + delta)
def update(self, screen):
self.time += 1
if self.status == 'ready1':
self.t -= 1
if self.t < 0:
self.clock = 200
self.t = self.clock
self.status = 'run'
elif self.status == 'run':
self.run()
if self.time == 10000:
self.status = 'ready2'
elif self.status == 'ready2':
if 10000 <= self.time <= 12000:
screen.blit(self.image_tide1, (600, 300))
if 12001 <= self.time <= 14000:
screen.blit(self.image_tide2, (600, 300))
if self.time > 14000:
self.status = 'tide'
elif self.status == 'tide':
self.clock = 100
self.run()
if self.time > 20000:
# if self.time > 1000:
self.status = 'over'
GameData['status'] = 'game_win'
- 实现植物冷却机制
目前已想到方法,但精神不振,未能今日实现,故留到明日完成
3.30 将card修改为类
class Card:
def __init__(self, name):
self.name = name
self.image = pygame.image.load('assets/SeedBank/card/'+name.name+'.png')
self.cold_time = name.cold_time
self.image_cardmask = pygame.image.load('assets/SeedBank/card_mask_dark.png')
self.mask_area = [0, 0, 50, 70]
self.t = self.cold_time
def charging(self):
self.mask_area[3] = 70*self.t/self.cold_time
if self.t > 0:
self.t -= 1
def update(self, screen, pos):
self.charging()
screen.blit(self.image, pos)
screen.blit(self.image_cardmask, pos, self.mask_area, special_flags=pygame.BLEND_RGBA_MULT)
效果
植物大战僵尸 demo