def send_wave(): amount_of_enemies = 0 path = short_path(_map) enemy_sprites = pygame.sprite.Group() bullets = pygame.sprite.Group() start_time = time.time() speed = 2 # wave loop running = True current_towers = towers.placed_towers while running: for event in pygame.event.get(): # check for closing window if event.type == pygame.QUIT: quitgame() elapsed_time = time.time() - start_time if elapsed_time > 1: start_time = time.time() if amount_of_enemies < 10: m = enemies.Enemy(path, speed) amount_of_enemies += 1 enemy_sprites.add(m) else: pass if len(enemy_sprites) == 0 and amount_of_enemies > 9: running = False # run @ 60 FPS clock.tick(FPS) # bring enemies on forever for sprite in enemy_sprites: for pos, tower in current_towers.items(): bullets.add(tower.check_radius(sprite, path, time.time())) enemy_sprites.update() bullets.update() # print(Globals.user_health) # Draw / render gameDisplay.fill(WHITE) re_draw_maze() health_bar() enemy_sprites.draw(gameDisplay) bullets.draw(gameDisplay) # main.gameDisplay.fill(WHITE) draw_background() # *after* drawing everything, flip the display pygame.display.flip()
def update(self, screen): Level.update(self, screen) if enemies.newSlime: # Spawn slime block = enemies.Enemy("pBlob", 200, 0, 50) block.rect.x = enemies.pinchyX block.rect.y = 450 self.enemyList.add(block) enemies.newSlime = False if enemies.isDefeated: # Create portal block = platforms.Portal("Town") block.rect.x = 650 block.rect.y = 400 self.portalList.add(block) enemies.isDefeated = False
''' A program to simulate the damage done by weapons in the videogame warframe. ''' # Imports from mods import mod, loadout import enemies import simulate import plotter # Main Function if __name__ == "__main__": # Play around loadout1 = loadout('Viral', 'Soma') loadout1.add_mod(mod('Serration', 10), mod('Infected Clip', 2), mod('Cryo Rounds', 2)) grineer = enemies.Enemy('Elite Crewman', 25) simulation = simulate.Simulation(loadout1, grineer) simulation.Simulate() plotter.Plotter([simulation])
def __init__(self): super().__init__() self.background = pygame.image.load("colored_land.png") pygame.mixer.music.load("Flowerville.ogg") pygame.mixer.music.play(-1) level = [ "////////////////////////////////////////////////////////////////////////////////////", "/ / ", "/ / ", "/ / ", "/ / ", "/ e 0 / ", "/ pmPL / ", "/ e e l SbbBBBR/ ", "/ e SbbbR SbbbbBR e Ssdddddrbbbbbbbbbb/", "/ LpmmmP SsdddrR Sbbbsdddddrbbbsddddddddddddddddd/", "/ a SbbbbbbbbR l SsdddddrR Ssddddddddddddddddddddddddddddddd/", "SbbbbbbbBbbsddddddddrbbbbBbbbbbbbbbbsdddddddrbbbbbsdddddddddddddddddddddddddddddddd/" ] for y, row in enumerate(level): for x, item in enumerate(row): # ------------------------------------- Regular blocks if item == 'b': block = platforms.Platform("dirt", 1, 50) # Cube dirt block.rect.x = 50 * x block.rect.y = 50 * y self.platformList.add(block) if random.randint(1, 4) == 1: block = platforms.NoCollide("grass", 50) block.rect.x = 50 * x block.rect.y = 50 * (y - 1) self.noCollideList.add(block) if item == 'B': block = platforms.Platform( "dirt", 1, 50) # Cube dirt with 100% no grass block.rect.x = 50 * x block.rect.y = 50 * y self.platformList.add(block) elif item == 'd': block = platforms.Platform("dirt", 16, 50) # Dirt with no grass block.rect.x = 50 * x block.rect.y = 50 * y self.platformList.add(block) elif item == '/': block = platforms.Platform("misc", 190, 50) # Invisible block block.rect.x = 50 * x block.rect.y = 50 * y self.platformList.add(block) # ------------------------------------- Angled blocks elif item == 'S': block = platforms.Platform("dirt", 3, 50) # Incline block.rect.x = 50 * x block.rect.y = 50 * y self.platformList.add(block) elif item == 's': block = platforms.Platform( "dirt", 9, 50) # Grass on top-right corner dirt (for inclines) block.rect.x = 50 * x block.rect.y = 50 * y self.platformList.add(block) elif item == 'R': block = platforms.Platform("dirt", 4, 50) # Decline block.rect.x = 50 * x block.rect.y = 50 * y self.platformList.add(block) elif item == 'r': block = platforms.Platform( "dirt", 10, 50) # Grass on top-left corner dirt (for declines) block.rect.x = 50 * x block.rect.y = 50 * y self.platformList.add(block) # -------------------------------------- No-collide blocks elif item == 'l': block = platforms.Platform("misc", 40, 50) # Continuing ladder block.rect.x = 50 * x block.rect.y = 50 * y self.noCollideList.add(block) elif item == 'L': block = platforms.Platform("misc", 39, 50) # Ending ladder block.rect.x = 50 * x block.rect.y = 50 * y self.noCollideList.add(block) elif item == 'a': block = platforms.Platform("misc", 21, 50) # Arrow sign block.rect.x = 50 * x block.rect.y = 50 * y self.noCollideList.add(block) elif item == '0': block = platforms.Portal("Town") block.rect.x = 50 * x block.rect.y = 50 * y self.portalList.add(block) self.portalY.append(block.rect.y) # ------------------------------------- Platforms elif item == 'p': block = platforms.Platform("dirt", 7, 50) # Left platform block.rect.x = 50 * x block.rect.y = 50 * y self.platformList.add(block) elif item == 'm': block = platforms.Platform("dirt", 6, 50) # Middle platform block.rect.x = 50 * x block.rect.y = 50 * y self.platformList.add(block) elif item == 'P': block = platforms.Platform("dirt", 5, 50) # Right plaform block.rect.x = 50 * x block.rect.y = 50 * y self.platformList.add(block) elif item == 'M': block = platforms.Platform("dirt", 8, 50) # Single platform block.rect.x = 50 * x block.rect.y = 50 * y self.platformList.add(block) # -------------------------------------- Enemies elif item == 'e': block = enemies.Enemy("worm", 100, 1, 50) # Worm block.rect.x = 50 * x block.rect.y = 50 * y self.enemyList.add(block)
def __init__(self): super().__init__() self.background = pygame.image.load("colored_desert.png") level = [ "////////////////////////////////////////////////////////////////////////////////////////////////////", "/ /", "/ /", "/ /", "/ /", "/ /", "/ /", "/ /", "/ e e /", "/ SbbbbbbbR e eee e e /", "/SbbbbbbR e e SbbsdddddddrbbbbbbbbbR SbbbbbbbbR e e SbbbbbbbbR /", "SsddddddrbbbbbbsddddddddddddddddddddrbbbbbbbbbbsddddddddrbbbbbbbbbbbsddddddddrBBBBBBBBBBBBBBBBBBBBBR" ] for y, row in enumerate(level): for x, item in enumerate(row): # ------------------------------------- Regular blocks if item == 'b': block = platforms.Platform( "sand", 1, 50) # Cube sand with fluffy sand block.rect.x = 50 * x block.rect.y = 50 * y self.platformList.add(block) if random.randint(1, 10) == 1: block = platforms.NoCollide("cactus", 50) if random.randint(0, 1) == 0: block.image = pygame.transform.flip( block.image, True, False) block.rect.x = 50 * x block.rect.y = 50 * (y - 1) self.noCollideList.add(block) if item == 'B': block = platforms.Platform( "sand", 1, 50) # 100% no cactus spawn fluffy sand block.rect.x = 50 * x block.rect.y = 50 * y self.platformList.add(block) elif item == 'd': block = platforms.Platform("sand", 16, 50) # Sand with fluffy sand block.rect.x = 50 * x block.rect.y = 50 * y self.platformList.add(block) elif item == '/': block = platforms.Platform("misc", 190, 50) # Invisible block block.rect.x = 50 * x block.rect.y = 50 * y self.platformList.add(block) # ------------------------------------- Angled blocks elif item == 'S': block = platforms.Platform("sand", 3, 50) # Incline block.rect.x = 50 * x block.rect.y = 50 * y self.platformList.add(block) elif item == 's': block = platforms.Platform( "sand", 9, 50 ) # Fluffy sand on top-right corner sand (for inclines) block.rect.x = 50 * x block.rect.y = 50 * y self.platformList.add(block) elif item == 'R': block = platforms.Platform("sand", 4, 50) # Decline block.rect.x = 50 * x block.rect.y = 50 * y self.platformList.add(block) elif item == 'r': block = platforms.Platform( "sand", 10, 50 ) # Fluffy sand on top-left corner sand (for declines) block.rect.x = 50 * x block.rect.y = 50 * y self.platformList.add(block) # -------------------------------------- No-collide blocks elif item == 'l': block = platforms.Platform("misc", 40, 50) # Continuing ladder block.rect.x = 50 * x block.rect.y = 50 * y self.noCollideList.add(block) elif item == 'L': block = platforms.Platform("misc", 39, 50) # Ending ladder block.rect.x = 50 * x block.rect.y = 50 * y self.noCollideList.add(block) elif item == 'a': block = platforms.Platform("misc", 21, 50) # Arrow sign block.rect.x = 50 * x block.rect.y = 50 * y self.noCollideList.add(block) # ------------------------------------- Platforms elif item == 'p': block = platforms.Platform("sand", 7, 50) # Left platform block.rect.x = 50 * x block.rect.y = 50 * y self.platformList.add(block) elif item == 'm': block = platforms.Platform("sand", 6, 50) # Middle platform block.rect.x = 50 * x block.rect.y = 50 * y self.platformList.add(block) elif item == 'P': block = platforms.Platform("sand", 5, 50) # Right plaform block.rect.x = 50 * x block.rect.y = 50 * y self.platformList.add(block) elif item == 'M': block = platforms.Platform("sand", 8, 50) # Single platform block.rect.x = 50 * x block.rect.y = 50 * y self.platformList.add(block) # -------------------------------------- Enemies elif item == 'e': block = enemies.Enemy("mouse", 150, 3, 50) # Mouse block.rect.x = 50 * x block.rect.y = 50 * y self.enemyList.add(block)
import map_data import enemies import data_location #I don't think I need to import enemy_info import pytmx import pygame #will eventually add selection so it will either be XMAS or TG map map_ = map_data.map_reader(data_location.christmas_map) #will eventually add enemies based on wave, probably a loop or something enemy = enemies.Enemy('snowman') #begins by displaying map #map_.display_map() def game_loop(): crashed = False while not crashed: map_.display_map() enemy.draw() pygame.time.delay(100) for event in pygame.event.get(): if event.type == pygame.QUIT: crashed = True pygame.map_.display.flip() map_.clock.tick(30)
def __init__(self, x, y, enemy, intro_text): self.enemy = enemy self._intro_text = intro_text super().__init__(x, y, enemies.Enemy(enemy.name, enemy.hp, enemy.damage))