【python游戏】这年头塔除了拆还能干什么?这款好玩上瘾的塔防游戏,了解一下嘛( 四 )

< nexus_width:pygame.draw.line(self.map_surface, red, (740+greenLen, 400), (740+nexus_width, 400), 3)screen.blit(self.map_surface, (0, 0))map_file.close()'''暂停游戏'''def pauseGame(self, screen):pause_interface = PAUSE.PAUSE(self.WIDTH, self.HEIGHT)pause_interface.update(screen)'''退出游戏'''def quitGame(self):sys.exit(0)pygame.quit()
4)游戏暂停界面
import sysimport pygame'''游戏暂停界面'''class PauseInterface(pygame.sprite.Sprite):def __init__(self, WIDTH, HEIGHT):pygame.sprite.Sprite.__init__(self)self.imgs = ['./resource/imgs/pause/gamepaused.png']self.image = pygame.image.load(self.imgs[0]).convert()self.rect = self.image.get_rect()self.rect.center = (WIDTH/2, HEIGHT/2)'''just pass'''def update(self):pass'''恢复游戏按钮'''class ResumeButton(pygame.sprite.Sprite):def __init__(self, position=(391, 380)):pygame.sprite.Sprite.__init__(self)self.imgs = ['./resource/imgs/pause/resume_black.png', './resource/imgs/pause/resume_red.png']self.img_1 = pygame.image.load(self.imgs[0]).convert()self.img_2 = pygame.image.load(self.imgs[1]).convert()self.image = self.img_1self.rect = self.image.get_rect()self.rect.center = positiondef update(self):mouse_pos = pygame.mouse.get_pos()if self.rect.collidepoint(mouse_pos):self.image = self.img_2else:self.image = self.img_1'''游戏暂停类'''class PAUSE():def __init__(self, WIDTH, HEIGHT):self.PI = PauseInterface(WIDTH, HEIGHT)self.RB = ResumeButton()self.components = pygame.sprite.LayeredUpdates(self.PI, self.RB)'''外部调用'''def update(self, screen):clock = pygame.time.Clock()background = pygame.Surface(screen.get_size())count = 0flag = Truewhile True:count += 1clock.tick(60)self.components.clear(screen, background)self.components.update()if count % 10 == 0:count = 0flag = not flagif flag:self.components.draw(screen)else:screen.blit(self.PI.image, self.PI.rect)pygame.display.flip()for event in pygame.event.get():if event.type == pygame.QUIT:sys.exit(0)pygame.quit()elif event.type == pygame.MOUSEBUTTONDOWN:if event.button == 1:mouse_pos = pygame.mouse.get_pos()if self.RB.rect.collidepoint(mouse_pos):return True
5)炮塔类

【python游戏】这年头塔除了拆还能干什么?这款好玩上瘾的塔防游戏,了解一下嘛

文章插图
'''Function:炮塔类'''import pygamefrom sprites import Arrow'''炮塔类'''class Turret(pygame.sprite.Sprite):def __init__(self, turret_type):assert turret_type in range(3)pygame.sprite.Sprite.__init__(self)self.turret_type = turret_typeself.imgs = ['./resource/imgs/game/basic_tower.png', './resource/imgs/game/med_tower.png', './resource/imgs/game/heavy_tower.png']self.image = pygame.image.load(self.imgs[turret_type])self.rect = self.image.get_rect()# 箭self.arrow = Arrow.Arrow(turret_type)# 当前的位置self.coord = 0, 0self.position = 0, 0self.rect.left, self.rect.top = self.positionself.reset()'''射击'''def shot(self, position, angle=None):arrow = Noneif not self.is_cooling:arrow = Arrow.Arrow(self.turret_type)arrow.reset(position, angle)self.is_cooling = Trueif self.is_cooling:self.coolTime -= 1if self.coolTime == 0:self.reset()return arrow'''重置'''def reset(self):if self.turret_type == 0:# 价格self.price = 500# 射箭的冷却时间self.coolTime = 30# 是否在冷却期self.is_cooling = Falseelif self.turret_type == 1:self.price = 1000self.coolTime = 50self.is_cooling = Falseelif self.turret_type == 2:self.price = 1500self.coolTime = 100self.is_cooling = False
完整代码 点击此处跳转文末名片免费获取噢~
效果展示
截图效果展示——
游戏界面——
?关卡——
困难模式选择——