import pygame from pygame.locals import * import sys from Bullet import Bullet from Peashooter import Peashooter from Sun import Sun from SunFlower import SunFlower from WallNut import WallNut # 初始化pygame from Zombie import Zombie pygame.init() size = (1200, 600) # 设置屏幕宽高 screen = pygame.display.set_mode(size) # 设置屏幕标题 pygame.display.set_caption("植物大战僵尸") backgroundImg = pygame.image.load('material/images/background1.jpg').convert_alpha() sunbackImg = pygame.image.load('material/images/SeedBank.png').convert_alpha() flower_seed = pygame.image.load("material/images/TwinSunflower.gif") wallNut_seed = pygame.image.load("material/images/WallNut.gif") peashooter_seed = pygame.image.load("material/images/Peashooter.gif") text = '1000' myfont = pygame.font.SysFont('arial', 20) txtImg = myfont.render(text, True, (0, 0, 0)) peashooter = Peashooter() sunFlower = SunFlower() wallNut = WallNut() zombie = Zombie() spriteList = pygame.sprite.Group() spriteList.add(peashooter) spriteList.add(sunFlower) spriteList.add(wallNut) spriteList.add(zombie) sunList = pygame.sprite.Group() #定义生成太阳的事件 GENERATORSUNEVNET = pygame.USEREVENT + 1 pygame.time.set_timer(GENERATORSUNEVNET, 2000) index = 0 choose = 0 clock = pygame.time.Clock() while True: if index > 100:import pygame from pygame.locals import * import sys from Bullet import Bullet from Peashooter import Peashooter from Sun import Sun from SunFlower import SunFlower from WallNut import WallNut # 初始化pygame from Zombie import Zombie pygame.init() for font in pygame.font.get_fonts(): print(font) size = (1200, 600) # 设置屏幕宽高 screen = pygame.display.set_mode(size) # 设置屏幕标题 pygame.display.set_caption("植物大战僵尸") backgroundImg = pygame.image.load('material/images/background1.jpg').convert_alpha() sunbackImg = pygame.image.load('material/images/SeedBank.png').convert_alpha() flower_seed = pygame.image.load("material/images/TwinSunflower.gif") wallNut_seed = pygame.image.load("material/images/WallNut.gif") peashooter_seed = pygame.image.load("material/images/Peashooter.gif") score = '100' myfont = pygame.font.SysFont('arial', 20) txtImg = myfont.render(score, True, (0, 0, 0)) peashooter = Peashooter() sunFlower = SunFlower() wallNut = WallNut() # zombie = Zombie() spriteList = pygame.sprite.Group() spriteList.add(peashooter) spriteList.add(sunFlower) spriteList.add(wallNut) # spriteList.add(zombie) sunList = pygame.sprite.Group() zombieList = pygame.sprite.Group() index = 0 clock = pygame.time.Clock() GENERATOR_SUN_EVENT = pygame.USEREVENT + 1 pygame.time.set_timer(GENERATOR_SUN_EVENT, 2000) GENERATOR_ZOMBIE_EVENT = pygame.USEREVENT + 2 pygame.time.set_timer(GENERATOR_ZOMBIE_EVENT, 5000) choose = 0 while True: clock.tick(15) # 启动消息队列,获取消息并处理 for event in pygame.event.get(): if event.type == QUIT: pygame.quit() sys.exit() if event.type == GENERATOR_SUN_EVENT: sun = Sun(sunFlower.rect) sunList.add(sun) if event.type == GENERATOR_ZOMBIE_EVENT: zombie = Zombie() zombieList.add(zombie) if event.type == MOUSEBUTTONDOWN: mouse_pressed = pygame.mouse.get_pressed() # 判断是否按下的事鼠标左键 if mouse_pressed[0]: (x, y) = pygame.mouse.get_pos() # 判断鼠标是否点中了某个卡片 if 330 <= x <= 380 and 10 <= y <= 80: choose = 1 elif 380 < x <= 430 and 10 <= y <= 80: choose = 2 elif 430 < x <= 480 and 10 <= y <= 80: choose = 3 for sun in sunList: if sun.rect.collidepoint((x, y)): # sunList.remove(sun) sun.is_click = True score = int(score) + 50 myfont = pygame.font.SysFont('arial', 20) txtImg = myfont.render(str(score), True, (0, 0, 0)) screen.blit(backgroundImg, (0, 0)) screen.blit(sunbackImg, (250, 0)) screen.blit(txtImg, (270, 60)) screen.blit(flower_seed, (330, 10)) screen.blit(wallNut_seed, (380, 10)) screen.blit(peashooter_seed, (430, 10)) print(choose) # 根据选中的卡片,将对应的植物图片,显示在当前鼠标的右下角,跟随鼠标移动 (x, y) = pygame.mouse.get_pos() if choose == 1: screen.blit(sunFlower.images[0], (x, y)) if choose == 2: screen.blit(wallNut.images[0], (x, y)) if choose == 3: screen.blit(peashooter.images[0], (x, y)) if index % 10 == 0: bullet = Bullet(peashooter.rect, size) spriteList.add(bullet) spriteList.update(index) spriteList.draw(screen) sunList.update(index) sunList.draw(screen) zombieList.update(index) zombieList.draw(screen) for zombie in zombieList: headStr = '刘无敌' yourfont = pygame.font.SysFont('simsunnsimsun', 30) headpic = yourfont.render(headStr, True, (0, 0, 0)) screen.blit(headpic, (zombie.rect.left + 60, zombie.rect.top - 20)) index += 1 pygame.display.update()