コード例 #1
0
ファイル: main.py プロジェクト: Hamzahab/Tower-Defense
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()
コード例 #2
0
 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
コード例 #3
0
'''
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])
コード例 #4
0
    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)
コード例 #5
0
    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)
コード例 #6
0
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)
コード例 #7
0
ファイル: tiles.py プロジェクト: stashkov/CustomizableTextRPG
 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))