예제 #1
0
파일: Arena.py 프로젝트: Magni77/No-swords
    def fight(self, Hero, Enemy, who, a_power, d_power):
        hero_attack = Hero.hattack() *a_power
        print("Herro Attac", hero_attack)
        hero_defense = Hero.hdefense() * d_power
        print("Her Def",  hero_defense)
        enemy_attack = Enemy.eattack() * a_power
        print("Enem Atta" , enemy_attack)
        enemy_defense = Enemy.edefense() * d_power
        print("enemy defd", enemy_defense)
        crit = random.randint(0, 5)

        if crit == 4:
            x = 1.5
            print("CRIT")
        else:
            x = 1

        if who % 2 != 0:
            hp = enemy_defense - x*hero_attack
            Enemy.lost_health(hp)
            self.label2.text = '[size=25]' + "Hero hit for " + str(abs(hp))
        else:
            ep = hero_defense - x*enemy_attack
            Hero.lost_health(ep)
            self.label3.text = '[size=25]' + "Enemy hit for " + str(abs(ep))
예제 #2
0
    def generate_enemies(self):
        newenemy = Enemy(self, "none")

        initial_y = randint(0, 240)
        initial_y -= 120
        newenemy.move_pos(y = initial_y)

        self.enemy_list.append(newenemy)
        self.sprite_list.add(newenemy)
예제 #3
0
class EnemyTests(unittest.TestCase):
    def setUp(self):
        self.enemy = Enemy()

    def test_name(self):
        self.assertEqual(True, len(self.enemy.name) > 3)

    def test_hp_is_above_9(self):
        self.assertEqual(True, self.enemy.hp_count() > 9)

    def test_has_type(self):
        self.assertEqual(True, len(self.enemy.type) > 5)

    def test_random(self):
        self.assertEqual(True, self.enemy.random_for_type < 3)

    def test_attack_damage(self):
        self.assertEqual(
            True,
            self.enemy.deal_damage_to_player() >=
            3 & self.enemy.deal_damage_to_player() < 26)

    def test_armour_level_above_1(self):
        self.assertEqual(True, self.enemy.armour > 1)

    def test_can_receive_damage(self):
        current_health = self.enemy.hp_count()
        self.enemy.receive_damage(10)
        self.assertEqual(current_health - 10 + self.enemy.armour,
                         self.enemy.hp_count())

    def test_can_die(self):
        self.enemy.receive_damage(100)
        self.assertEqual(False, self.enemy.is_alive)
예제 #4
0
    def test_normal_fight_lowers_health(self):
        w = Weapon('The Axe of Destiny', 10)
        h = Hero("Bron", "Dragonslayer", 100, 100, 1)
        h.equip(w)
        e = Enemy(100, 10)
        f = Fight(h, e, [], 3, 3)
        f.fight()

        test_passes = False
        if e.is_alive() is not True or h.is_alive() is not True:
            test_passes = True
        self.assertEqual(test_passes, True)
예제 #5
0
 def generateRooms(self):
     rooms = []
     for i in range(self.number_of_rooms):
         room = Room(i)
         for j in range(room.number_of_enemies):
             rand = random.randint(0, 1)
             if rand == 0:
                 room.enemies.append(Enemy.Bat())
             else:
                 room.enemies.append(Enemy.Zombie())
         rooms.append(room)
     return rooms
예제 #6
0
def createEnemies():
    Enemy1 = Enemy(4, 3, 'E', 0, 3, Board.x-6, Board.y, 2, 1)
    lists.Enemies.append(Enemy1)
    Enemy2 = Enemy(2, 2, 'E', 0, 2, int(Board.x/2), Board.y, 1, 0)
    lists.Enemies.append(Enemy2)
    Enemy2 = Enemy(3, 2, 'E', 0, 2, Board.x, Board.y, 1, 1)
    lists.Enemies.append(Enemy2)
    Enemy2 = Enemy(3, 2, 'E', 0, 2, 2*Board.length +
                   int(Board.x/2)+2, Board.y, 1, 1)
    lists.Enemies.append(Enemy2)
    Enemy2 = Enemy(3, 2, 'E', 0, 2, 2*Board.length +
                   int(Board.x/2), Board.y, 1, 1)
    lists.Enemies.append(Enemy2)
예제 #7
0
 def create_enemies(self):
     """生成敌机"""
     if len(self.enemies1) >= 5: return
     if self.enemy_fre % 50 == 0:
         enemy1 = Enemy()
         if enemy1.type == 2:
             if self.boss_alive:
                 while enemy1.type == 2:
                     enemy1 = Enemy()
             else:
                 self.boss_alive = True
         self.enemies1.add(enemy1)
     self.enemy_fre += 1
     if self.enemy_fre >= 100:
         self.enemy_fre = 0
    def create_enemy_matrix(self):

        random.seed()
        #enemy_types = [EnemyType.Enemy_one, EnemyType.Enemy_two, EnemyType.Enemy_tree]
        x, y = 0, self.y_space
        self.enemy_parent = []
        for i in range(self.en_lines):
            line = []
            e_type = random.choice(list(self.enemy_types.keys()))
            for j in range(self.en_columns):
                en = Enemy(self.game, x, y, e_type, self.enemy_types[e_type],
                           30, 100, 400)
                line.append(en)
                self.game_images_running.append(en.game_image)
                x += self.x_space
                #print("x: %d,y: %d"%(x, y))
            self.enemy_parent.append(line)
            x = 0
            y += self.y_space
            self.max_y = y + self.y_space
        self.en_columns += 1
        if self.en_columns > self.max_columns:
            self.en_columns = 3
            self.en_lines = min(self.en_lines + 1, self.max_lines)
        self.max_enemy_timer = self.default_en_timer
        self.default_en_timer *= 0.95
        return
예제 #9
0
def enemyGenerator(enemyList, maxEnemies, points):
    x = random.randint(0, 100)
    tmp = points
    if points < 75:
        tmp = 75
    if x < (3 * (tmp / 75)) and len(
            enemyList) < maxEnemies:  # chance enemy will be generated
        x = random.randint(0, 1)
        if x == 1:
            right = True
        else:
            right = False
        speed = random.randint(1, 4)
        speed += random.randint(0, 4)
        speed += random.randint(0, 4)
        if random.randint(0, 100) < 50:  # 50% chance enemy will be flying
            e = Enemyflying(right, speed)
            #if random.randint(0,10) < 3 * math.ceil(points/100):
            if random.randint(0, 10) < 1:
                e.boss = True
                e.speed = 8
            else:
                e.boss = False
            enemyList.append(e)
            #enemyList.append(Enemyflying(right, speed))
        else:
            enemyList.append(Enemy(right, speed))
예제 #10
0
파일: Main.py 프로젝트: THEToilet/Boss
    def __init__(self):
        pyxel.init(WINDOW_W, WINDOW_H, caption="Boss")
        pyxel.load("assets/Boss.pyxres")

        self.player_x = 100
        self.player_y = 100
        self.player_dx = 0
        self.player_dy = 0
        self.player_hp = 1000
        self.enemy_hp = 100
        self.pc_before_direction = 3
        self.is_jump = False

        self.is_OP = True
        self.is_game_over = False
        self.is_game_clear = False

        # make instance
        self.pc = pc.pc()
        self.Balls = []
        self.Enemies = []
        self.enemy_particles = []
        self.player_particles = []
        self.Items = []
        self.enemy_core = enemy.Enemy()
        self.enemy_move = enemymov.EnemyMove()

        self.for_move_point = ENEMY_CORE_NORMAL_Y
        self.origin_time = 0
        self.orioir = 0
        self.oni = 0
        self.on = 0

        pyxel.run(self.update, self.draw)
예제 #11
0
    def setup(self):
        """ Set up the game and initialize the variables. """
        # Set up the player
        if self.game_start:
            self.player_sprite = Player()
            self.player_sprite.center_x = 100
            self.player_sprite.center_y = 100
            self.player_list = arcade.SpriteList()
            self.player_list.append(self.player_sprite)
            self.bullet_list = arcade.SpriteList()
            self.explosions_list = arcade.SpriteList()
            self.itemone = False
            self.itemtwo = False
            self.itemthree = False

            # List of Enemy
            self.enemy_list = Enemy.create()

            # Our list of rooms
            self.rooms = Rooms.create()

            # Our starting room number
            self.current_room = 0

            # Create a physics engine for this room
            self.physics_engine = arcade.PhysicsEngineSimple(
                self.player_sprite, self.rooms[self.current_room].wall_list)
예제 #12
0
def crearOrda(ls_enemigos,ls_todos,num,vel):
	for i in range(num):
		enemigo = Enemy('Images/enemy'+str(random.randrange(1,4))+'.png',vel)
		enemigo.rect.x=random.randrange(WIDTH-64)
		enemigo.rect.y=random.randrange(HIGH-200)
		ls_enemigos.add(enemigo)
		ls_todos.add(enemigo)
예제 #13
0
 def load_enemy(self):
     for i in range(0, len(self.map)):
         for j in range(0, len(self.map[0])):
             if self.map[i][j] == 'E':
                 self.mediator.all_game_entities.append(
                     Enemy(self.screen, j * self.tile_size,
                           i * self.tile_size, 'enemy', self.player))
예제 #14
0
    def __init__(self, screen):
        self.screen = screen

        # init UI
        self.UI = ui.UI(screen)

        # Calls UI loadingScreen to display loading screen while the game finishes __init__
        self.UI.loadingScreen()

        # init all classes building game
        self.groundTiles = ground.groundTiles(screen)
        self.trees = tree.TreeNodesList(screen)
        self.antTrail = trail.AntTrail(screen, self.trees.list)
        self.popoutLoader = popout.PopoutBox(screen)
        self.enemy = enemy.EnemyList(screen, self.antTrail.grid, self.UI)

        # Background Music
        pygame.mixer.music.load("background_music.mp3")

        # Variables set up for use in the AntTrail and Leaf Collection Logic
        self.isTrailSelected = False
        self.trailTree = None

        # Mouse Cursor setup
        self.mouseCursor = pygame.image.load(
            "mouse_cursor.png").convert_alpha()

        # Calls Start Screen loop after all assests are loaded
        self.UI.startScreen()
        pygame.mixer.music.set_volume(.3)
예제 #15
0
    def play_game(self):
        """ main play function of the game"""
        play = True
        background = [
            os.path.join('Images', 'environment_forestbackground.png'),
            os.path.join('Images', 'environment_forestbackground1-1.png'),
            os.path.join('Images', 'environment_forest_evening.png')
        ]

        while play:
            # current fps
            milliseconds = self.clock.tick(self.FPS)
            # gets user play time
            self.play_time += milliseconds / 1000.0
            # creates new enemy
            self.enemy = Enemy.Enemy(self.player)
            # initializes background
            self.print_frames()
            self.screen.fill([255, 255, 255])
            self.back = image.Image(background[random.randint(0, 2)], [0, 0])
            self.screen.blit(self.back.image, self.back.rect)
            # asks user to fight
            text_surface = self.font.render('Press space to fight!!', False,
                                            (0, 0, 0))
            self.screen.blit(text_surface, (240, 300))
            # begins battle
            play = self.battle()
예제 #16
0
    def check_new_tile(self, tile_grid):
        battle = None
        # Checks new location of hero to see if it is a combat area
        boolean = tile_grid.check_combat_area((self.x_loc, self.y_loc),
                                              self.width, self.height)
        if boolean is True:
            number = random.randint(0, 99)
            if number < self.combat_chance:
                battle = Battle.Battle(self,
                                       Enemy.Wolf(100, 100, 100, 1, 1, 1))
                self.combat_chance = 0
            else:
                self.combat_chance += 1

        # Checks new location of hero to see if it is a load point
        boolean, tile = tile_grid.check_load_points((self.x_loc, self.y_loc),
                                                    self.width, self.height)
        # Returns hero sprite, hero_loc, and map_name / None
        if boolean is True:
            self.x_loc = tile.new_loc_x * tile_grid.tile_size
            self.y_loc = (tile.new_loc_y * tile_grid.tile_size) - (
                self.height - self.width)  # Extra hero height
            return tile.new_map, battle
        else:
            return None, battle
예제 #17
0
    def update_spawns(self):
        if len(self.environmentList) < (4 + self.num_obstacles):
            while len(self.environmentList) < (4 + self.num_obstacles): # spawn random obstacles
                x_pos_tl = random.randint(100, 400) # top left coords
                y_pos_tl = random.randint(100, 400)
                tl = Point.Point(x_pos_tl, y_pos_tl)

                x_len = random.randint(100, 200)
                y_len = random.randint(100, 200)

                x_pos_br = random.randint(x_pos_tl, x_pos_tl + x_len)
                y_pos_br = random.randint(y_pos_tl, y_pos_tl + y_len)
                br = Point.Point(x_pos_br, y_pos_br)

                obs = Wall.Wall(tl, br)
                if self.__world_overlap(self, obs):
                    self.spawnWall(obs)

        # spawn more creatures randomly if there are fewer than a certain number of creatures
        if len(self.enemy_list) == 0:
            while len(self.enemy_list) < self.num_enemies: # spawn random enemies
                x_pos = random.randint(30, self.xPixels - 80)
                y_pos = random.randint(30, self.yPixels - 80)
                size = random.randint(25, 45)
                speed = random.randint(3, 5)
                health = random.randint(30, 80)
                en = Enemy.Enemy(Point.Point(x_pos, y_pos), (Point.Point(x_pos + size, y_pos + size)), speed, health)
                if self.__world_overlap(self, en):
                    self.spawn_enemy(en)
예제 #18
0
def addEnemy(lvl, name=None):
    """
	Add an enemy to the level
	
	@param lvl: Dictionnary containing all information about one \"Level\" object
	@type lvl: dict

	@param name: enemy's name to add
	@type name: str

	@return: -
	@rtype: void
	"""

    assert type(name) is str or name == None
    assertLevel(lvl)

    if (name == None):
        #if no name specified, random choice
        listNames = os.listdir("./Enemys/")
        enemyName = listNames[randint(0, len(listNames) - 1)]
        if (enemyName in lvl["availableEnemys"]):
            lvl["enemyList"].append(Enemy.Enemy(enemyName))

    return
예제 #19
0
 def spawn_enemies(self):
     num = ((wave_num * 1.5) + 1) % 1
     for i in range(num):
         x = random.randint(1, 0)
         if x == 1:
             x = 800
         Enemy.Enemy(image, width, height, x)
예제 #20
0
    def runBattle(self, enemyNames, background, canFlee=True):

        combatants = list(self.partyManager.team)

        enemyElements = self.enemiesFile.getElementsByTagName("enemy")
        for name in enemyNames:
            found = filter(lambda e: str(e.getAttribute("name")) == name,
                           enemyElements)
            if len(found):
                combatants += [Enemy.Enemy(found[0])]
            else:
                self.logManager.error("No enemy called " + name +
                                      " found in " + self.enemiesLocation +
                                      ".")

        # Choose a nice battle music.
        playingMusic = self.audioManager.getPlayingMusic()
        self.audioManager.playMusic("music/battle" +
                                    str(self.mathManager.randInt(1, 4)) +
                                    ".ogg")

        battle = Battle.Battle(combatants, background, canFlee)

        self.battleIntro()
        battle.run()

        self.audioManager.playMusic(playingMusic)

        return battle.won
예제 #21
0
def create_level(n):
    global level
    for i in range(n):
        enemy = Enemy()
        actors.append(enemy)
        enemies.append(enemy)
    level += 1
예제 #22
0
    def buildBodies(self):
        self.center = Friend.FriendSprite(width=self.params['width'],
                                    height=self.params['height'],
                                    x= self.params['x'],
                                    y= self.params['y'],
                                    static="true",friction=20).setName('inner_circ'+self.params['name'])
        self.bodies += self.center.render()[0]
        self.joints += self.center.render()[1]
        self.contacts += self.center.render()[2]
     
        self.hub = Friend.FriendSprite(width=self.params['enemy_size']-3,
                                    height=self.params['enemy_size']-3,
                                    y= self.params['y'] + self.params['height']/2 + self.params['enemy_size']/2,
                                    x= self.params['x'],
                                    static="false",density=100).setName('axel'+self.params['name'])
        self.bodies += self.hub.render()[0]
        self.joints += self.hub.render()[1]
        self.contacts += self.hub.render()[2]
 
        self.outer = Enemy.EnemySprite(width=self.params['enemy_size'],
                                    height=self.params['enemy_size'],
                                    x= self.params['x'],
                                    y= self.params['y'] + self.params['height']/2 + self.params['enemy_size']/2 -2,
                                    static="false",density=100,friction=20).setName("rotor_enemy"+self.params['name'])
        self.bodies += self.outer.render()[0]
        self.joints += self.outer.render()[1]
        self.contacts += self.outer.render()[2]
예제 #23
0
 def update(self):
     self.copies.update()
     if self.wave == 2:
         self.alive = True
         self.game.player.setPos(self.spawn2[0], self.spawn2[1])
         self.boss = Boss(self, self.bossSpawn[0], self.bossSpawn[1])
         self.sound.playMusic(1, 1)
         self.wave = 0
     elif len(self.copies.sprites()) == 0 and len(self.game.enemies.sprites(
     )) == 0 and not self.changedPos and not self.alive:
         self.game.player.setPos(self.spawn1[0], self.spawn1[1])
         self.changedPos = True
         self.wave += 1
         if self.wave != 2:
             for i in self.enemies:
                 Enemy(self.game, i[0], i[1], 16, 16)
     elif len(self.game.enemies.sprites()
              ) == 0 and self.changedPos and not self.alive:
         self.game.player.setPos(self.spawn[0], self.spawn[1])
         self.spawnCopies()
         if self.wave == 1:
             self.spawnAfterEnemies()
         self.changedPos = False
     if len(self.bossGroup.sprites()) > 0:
         self.boss.update()
예제 #24
0
    def loadLevel(self, levelFile, levelNumber):
        f = open("Resources/Levels/" + levelFile)
        lines = f.readlines()
        f.close()

        newlines = []
        for line in lines:
            newline = ""
            for c in line:
                if c != '\n':
                    newline += c
            newlines += [newline]

        lines = newlines

        startIndex = lines.index(str(levelNumber)) + 1
        endIndex = startIndex + 10

        newlines = []
        for line in range(startIndex, endIndex):
            #print lines[line]
            newlines += [lines[line]]
        lines = newlines

        for line in lines:
            print line

        for y, line in enumerate(lines):
            for x, c in enumerate(line):
                if c in "1234567890":  #levels of dirt
                    self.dirts += [
                        Dirt(c, [
                            x * self.tileSize + self.tileSize / 2,
                            y * self.tileSize + self.tileSize / 2
                        ], self.tileSize)
                    ]
                if c in "x":  #Pew
                    self.enemies += [
                        Enemy(2, [
                            x * self.tileSize + self.tileSize / 2,
                            y * self.tileSize + self.tileSize / 2
                        ], self.tileSize)
                    ]

                if c in "y":  #Beatbox
                    self.enemies += [
                        ShootingEnemy(1, [
                            x * self.tileSize + self.tileSize / 2,
                            y * self.tileSize + self.tileSize / 2
                        ], self.tileSize)
                    ]

                if c in "z":  #Shade
                    self.enemies += [
                        Shade(4, [
                            x * self.tileSize + self.tileSize / 2,
                            y * self.tileSize + self.tileSize / 2
                        ], self.tileSize)
                    ]
예제 #25
0
def main():
    pygame.font.init()
    pygame.init()
    screen = pygame.display.set_mode((1000, 700))
    pygame.display.set_caption('Spaceships')
    img = pygame.image.load("images\Background.jpg")
    BackGround = pygame.transform.scale(img, (1000, 700))
    backdropbox = BackGround.get_rect()
    Player1 = Player()
    score = 0

    # enemy = Enemy("images\enemy.png")
    pygame.display.flip()
    screen.blit(BackGround, backdropbox)
    clock = pygame.time.Clock()
    all_sprites = pygame.sprite.Group()
    bullets_group = pygame.sprite.Group()
    mobs_group = pygame.sprite.Group()
    all_sprites.add(Player1)
    start = pygame.time.get_ticks()
    now = pygame.time.get_ticks()
    hits = pygame.sprite.groupcollide(mobs_group, bullets_group, True, True)

    while True:

        hits = pygame.sprite.groupcollide(mobs_group, bullets_group, True,
                                          True)
        for hit in hits.items():
            score += 1

        now = pygame.time.get_ticks()
        screen.blit(BackGround, backdropbox)

        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                pygame.quit()
                exit(0)
            elif event.type == pygame.KEYDOWN:
                if event.key == pygame.K_SPACE:
                    if bullets_group.__len__() < 1:
                        bullet = Bullet("images\Bullet.png", Player1.rect.x,
                                        Player1.rect.y, bullets_group)

        if now - start > 1000:
            start = now
            mob = Enemy("images\enemy.png", all_sprites)
            mobs_group.add(mob)

        all_sprites.update()
        bullets_group.update()
        bullets_group.draw(screen)
        all_sprites.draw(screen)
        text(screen, score)
        Player1.show_lifes(screen)

        # screen.blit(Player1.image, (Player1.rectx, Player1.recty))

        pygame.display.flip()
        clock.tick(60)
예제 #26
0
def add_big_plane(group1, group2, num):
    for i in range(num):
        enemy = Enemy.EnemyNum3(bg_size)
        while pygame.sprite.spritecollide(enemy, group2, False,
                                          pygame.sprite.collide_mask):
            enemy.reset()
        group1.add(enemy)
        group2.add(enemy)
예제 #27
0
 def setPlayer(self, app, toLoad=True, toSet=False):
     #ako je vec setovan u online modu ne setuje se opet
     if toSet == False: return
     app.playerHealth = app.playerStartHealth = PEStrategy3.maxHealth
     app.playerEnergy = app.playerStartEnergy = PEStrategy3.maxEnergy
     app.players[0] = Enemy(app.playerStartHealth, 12,
                            app.playerStartEnergy, self.tag,
                            self.explorationFactor)
예제 #28
0
    def __init__(self,code_good):
        self.win_width = win_width
        self.win_height = win_height
        self.code_good = code_good
        self.mPreset_enemies = []
        num = len(TheEnd_dict)
        print(num)
        for i in range(NUM_ENEMIES):
            spwn_x = randint(0, win_width)
            chance = randint(0,5)
            if num > 0:
                print(num)
                if chance == 0:
                    key = choice(list(TheEnd_dict.keys()))
                    letter = TheEnd_dict[key]
                    print(key, letter, "key, letter")
                    self.mPreset_enemies.append(Enemy(spwn_x, -50, str(letter)))
                    del TheEnd_dict[key]
                    num -= 1
                else:
                    self.mPreset_enemies.append(Enemy(spwn_x, -50))
        print(num, "num before while loop")
        while num > 0:
            spwn_x = randint(0, win_width)
            key = choice(list(TheEnd_dict.keys()))
            letter = TheEnd_dict[key]
            print(key, letter, "key, letter")
            self.mPreset_enemies.append(Enemy(spwn_x, -50, str(letter)))
            del TheEnd_dict[key]
            num -= 1
        self.mEnemies = [deepcopy(self.mPreset_enemies[0])]
        self.Enemy_delay = 0.5
        self.Enemy_index = 1
        self.mNum_enemies = len(self.mPreset_enemies)
        self.bullet_list = []
        self.mDel_enemies = False
        self.mBoss_phase = False
        self.mAdd_phase = True
        self.hp_bar = pygame.image.load("Sprites/hp_gradient.png")
        self.mFont = pygame.font.SysFont("Times New Roman", 50)
        self.mEnemy_bullets = []
        self.mEnemy_bullet_timer = 1.5


        #player thing
        self.Player = Player((800, 600), code_good, SHIP)
예제 #29
0
def cantina_level():
    Background(backGround_sprite, 'Dune Sea level1.png', (1080, 720))
    enemy = 10
    t = 0
    enemy_event = 30
    pygame.time.set_timer(enemy_event, 2500)
    FirstPlay(firstPlay_sprite)
    Enemy(whiteStormTroopers_sprite, 150, 50, 350, 450)
    DrawMouse(mouse_sprite)
    x, y = 500, 320
    running = True
    while running:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                exit(0)
            if event.type == pygame.MOUSEBUTTONDOWN:
                fire_sound.set_volume(0.6)
                fire_sound.play()
                firstPlay_sprite.update(pygame.mouse.get_focused(), True)
                whiteStormTroopers_sprite.update(True, event.pos)
            if event.type == pygame.MOUSEMOTION:
                x, y = event.pos
            if event.type == enemy_event and enemy != 0:
                Enemy(whiteStormTroopers_sprite, 150, 50, 900, 450)
                enemy -= 1
        if Variables.hp <= 0:
            t = 1
            running = False
        elif enemy == 0:
            t = 2
            Variables.hp = 20
            running = False
        backGround_sprite.draw(screen)
        firstPlay_sprite.update(pygame.mouse.get_focused(), False)
        whiteStormTroopers_sprite.update()
        whiteStormTroopers_sprite.draw(screen)
        mouse_sprite.update(x, y, pygame.mouse.get_focused())
        firstPlay_sprite.draw(screen)
        mouse_sprite.draw(screen)
        healthpo(screen)
        clock.tick(FPS)
        pygame.display.update()
    if t == 1:
        Screens.total_shit()
    elif t == 2:
        Screens.complev()
예제 #30
0
    def __init__(self):
        self.player = Player.Player()
        self.map_ = Map_.Map_(10)
        self.enemy = Enemy.Enemy()
        self.__game_end_event = Event()

        self.player.position = self.map_.get_free_cell()
        self.enemy.position = self.map_.get_free_cell()
예제 #31
0
def mn3():
    Background(backGround_sprite, 'darlevel.jpg', (1080, 730))
    enemy = 10
    enemy_event = 30
    t = 0
    pygame.time.set_timer(enemy_event, 2500)
    FirstPlay(firstPlay_sprite)
    Enemy(whiteStormTroopers_sprite, 150, 50, 350, 450)
    DrawMouse(mouse_sprite)
    x, y = 500, 320
    running = True
    Sounds.Music('data1/Sounds/maintheme.ogg')
    while running:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                exit(0)
            if event.type == pygame.MOUSEBUTTONDOWN:
                fire_sound.set_volume(0.6)
                fire_sound.play()
                firstPlay_sprite.update(pygame.mouse.get_focused(), True)
                whiteStormTroopers_sprite.update(True, event.pos)
            if event.type == pygame.MOUSEMOTION:
                x, y = event.pos
            if event.type == enemy_event and enemy != 0:
                Enemy(whiteStormTroopers_sprite, 150, 50, 900, 450)
                enemy -= 1
        if Variables.hp <= 0:
            t = 1
            running = False
        elif enemy == 0:
            t = 2
            Variables.hp = 20
            running = False
        backGround_sprite.draw(screen)
        firstPlay_sprite.update(pygame.mouse.get_focused(), False)
        whiteStormTroopers_sprite.update()
        whiteStormTroopers_sprite.draw(screen)
        mouse_sprite.update(x, y, pygame.mouse.get_focused())
        firstPlay_sprite.draw(screen)
        mouse_sprite.draw(screen)
        healthpo(screen)
        clock.tick(FPS)
        pygame.display.update()
    if t == 1:
        return 1
예제 #32
0
 def setUpEnemy(self, screen):
     self.enemyList = []
     enemy = Enemy("Zombie.gif", screen.get_width() - 100, screen.get_height() - 100, 288, 288, 4, 4, self.enemyAI)
     self.enemyList.append(enemy)
     if self.level > 2:
         enemy = Enemy("Zombie.gif", screen.get_width() - 100, screen.get_height() - 700, 288, 288, 4, 4, True)
         self.enemyList.append(enemy)
     if self.level > 4:
         enemy = Enemy("Zombie.gif", screen.get_width() / 2, screen.get_height() / 2, 288, 288, 4, 4, True)
         self.enemyList.append(enemy)
     for enemy in self.enemyList:
         enemy.set_animation_delay(100)
         enemy.play(True)
예제 #33
0
파일: main.py 프로젝트: edbrown/LD24
  def __init__(self):
    super(Game, self).__init__()
    self.map = Map(data)
    self.pathfinding = AStar(self.map)
    pyglet.clock.schedule_interval(self.update, 1/120.0)
    self.pause = False
    self.message = Message(["Well hello there, you sexy beast. This is long text...", "You bastard"]);
    self.player = Player(self, self.map.grid[2,1], 0, 0)
    self.npc = NPC(self, self.map.grid[2,1], self.map.get_tile(7,5))
    self.player.create_animations()
    self.npc.create_animations()
    self.enemy = Enemy(self, self.map.grid[2,1], self.map.get_tile(1,5))
    self.enemy.create_animations()

    #little hack to get the viewport centered and then to follow the player
    temp_size = self.get_size()
    self.viewport_x = temp_size[0]/2
    self.viewport_y = 0

    self.offset_x = 0
    self.offset_y = 0
    
    self.update_viewport(temp_size[0]/2, 0)
    self.viewport_y = temp_size[1]/2
예제 #34
0
def encounter_bard():
    Enemy.create_bard()
    encounter()
예제 #35
0
def encounter_thief():
    Enemy.create_thief()
    encounter()
예제 #36
0
def encounter_archer():
    Enemy.create_archer()
    encounter()
예제 #37
0
def encounter_mage():
    Enemy.create_mage()
    encounter()
예제 #38
0
def encounter_warrior():
    Enemy.create_warrior()
    encounter()
예제 #39
0
파일: GameManager.py 프로젝트: kks227/SP
	def initEnemyData(self):
		cnt = 0
		# get root node
		root = parse("Enemy.xml").getroot()
		for tag in root.getiterator("enemy"):
			# get name especially
			name = tag.find("name").text
			stamp = Enemy(0, 0, name)

			# get data
			stamp.eid = cnt
			stamp.lv = int(tag.find("lv").text)
			stamp.sort = tag.find("sort").text # species(machine, ghost, animal, ...)
			#stamp.type
			stamp.boss = bool(int(tag.find("boss").text))
			stamp.move = int(tag.find("move").text)
			stamp.maxHP = stamp.HP = int(tag.find("hp").text)
			stamp.maxMP = stamp.MP = int(tag.find("mp").text)
			stamp.ATK = int(tag.find("atk").text)
			stamp.DEF = int(tag.find("def").text)
			stamp.MATK = int(tag.find("matk").text)
			stamp.MDEF = int(tag.find("mdef").text)
			stamp.SPD = int(tag.find("speed").text)
			stamp.JMP = int(tag.find("jump").text)
			stamp.KB = int(tag.find("kb").text)
			stamp.EXP = int(tag.find("exp").text)
			stamp.GOLD = int(tag.find("gold").text)
			#stamp.drop
			stamp.imgFrame = int(tag.find("imgframe").text)
			stamp.rect.size = (int(tag.find("width").text), int(tag.find("height").text))
			#stamp.skill

			# append to list and dict
			self.enemyStamp.append(stamp)
			self.enemyId[name] = cnt
			cnt += 1
예제 #40
0

def attackTurn(p,e):
    hit = p.attackRoll()
    e.takeDamage(hit)

def healingSpell(h,p):
    p.health += h.castSpell(2)

def damageSpell(p,e):
    e.takeDamage(p.castSpell(2))

for he in range(5,21):
    for hp in range(8,14):
        human = Player(hp,0,0,0)
        baddie = Enemy(he,0,0,0)
        battles = 0
        humanWins = 0
        baddieWin = 0
        def fightSequence():
            #print("Human: HP = ",human.health,"\n")'''
            #print("Baddie: HP = ",baddie.health,"\n")'
            global hp
            global he
            baddie.rollInit()
            human.rollInit()
            spellcasts = 0
            '''if(human.initiative > baddie.initiative):
                print("human will attack first\n")
            else:
                print("baddie will attack first\n")'''
예제 #41
0
파일: main.py 프로젝트: edbrown/LD24
class Game(pyglet.window.Window):
  def __init__(self):
    super(Game, self).__init__()
    self.map = Map(data)
    self.pathfinding = AStar(self.map)
    pyglet.clock.schedule_interval(self.update, 1/120.0)
    self.pause = False
    self.message = Message(["Well hello there, you sexy beast. This is long text...", "You bastard"]);
    self.player = Player(self, self.map.grid[2,1], 0, 0)
    self.npc = NPC(self, self.map.grid[2,1], self.map.get_tile(7,5))
    self.player.create_animations()
    self.npc.create_animations()
    self.enemy = Enemy(self, self.map.grid[2,1], self.map.get_tile(1,5))
    self.enemy.create_animations()

    #little hack to get the viewport centered and then to follow the player
    temp_size = self.get_size()
    self.viewport_x = temp_size[0]/2
    self.viewport_y = 0

    self.offset_x = 0
    self.offset_y = 0
    
    self.update_viewport(temp_size[0]/2, 0)
    self.viewport_y = temp_size[1]/2
 
  def update(self, dt):
    self.clear()
    self.map.draw()
    self.player.draw()
    self.enemy.draw()
    self.npc.draw()
    self.player.inventory.update(self.offset_x, self.offset_y)

    if not self.message.finished:
      self.pause = True
      self.message.show()
    else:
      self.pause = False
    if self.pause:
      return  
    self.player.update(dt)
    if self.enemy.is_alive():
      if not self.enemy.tasks.has_tasks(): 
        self.enemy.calculate_next_move()
        if self.enemy.next_move != self.enemy.tile:
          self.enemy.tasks.add_task(self.enemy.next_move, TASK_WALK)
    self.enemy.update(dt)

  def update_viewport(self, x = -1, y = -1):
    x_pos, y_pos = x, y
    if x == -1:
      x_pos = -self.player.x + self.viewport_x
    if y == -1:
      y_pos = -self.player.y + self.viewport_y

    self.offset_x = x_pos
    self.offset_y = y_pos
    
    glMatrixMode(GL_MODELVIEW)
    glLoadIdentity()
    glTranslatef(x_pos, y_pos, 1.0)
    glPushMatrix()
    glPopMatrix()
    

  def on_mouse_press(self, x, y, button, modifiers):
    x_pos = x - self.offset_x
    y_pos = y - self.offset_y

    
    if button == LEFT_CLICK:
      if self.message:
        self.message.next()
    if self.pause:
      return
    if button == RIGHT_CLICK:
      for tile in self.map.tiles:
        if(tile.contains(tile.image, x_pos, y_pos) == True):
          if tile.is_passable():
            move_loc = tile.get_move_loc()
            tasks = self.pathfinding.calcShortest(self.map.get_tile(self.player.grid_x, self.player.grid_y), self.map.get_tile(move_loc[0], move_loc[1]))
            if tasks:
              if len(tasks) > 1:
                self.player.tasks.clear_tasks()
                tasks.reverse()
                tasks.pop(0)
                index = len(tasks) - 1
                for task in tasks:
                  self.player.tasks.add_task(task, TASK_WALK)

                if type(tasks[index].person) == NPC:
                  action = self.player.tasks.add_task(tasks[index].person, TASK_SPEAK)
                if type(tasks[index].person) == Enemy:
                  tasks[index].person.under_attack = True
                  self.player.tasks = TaskQueue()
                  self.player.tasks.add_task(tasks[index].person, TASK_GOTO)
                  print "Task Attack"
                  self.player.tasks.add_task(tasks[index].person, TASK_ATTACK)
                  
            else:
              print "No path!"
            break;

      for item in self.map.items:
        if item.is_chest_item():
          if item.image.frames:
            if item.contains(item.image.frames[0].image, x_pos, y_pos):
              self.player.tasks.add_task(item, TASK_ACTION)
          else:
            if item.contains(item.image, x_pos, y_pos):
              self.player.tasks.add_task(item, TASK_ACTION)

      for item in  self.player.inventory.items:
        if item.contains(item.image, x_pos, y_pos):
          item.action(self.player)
          self.player.inventory.items.remove(item)

      if self.enemy.contains(self.enemy.image.frames[0].image, x_pos, y_pos):
        self.enemy.under_attack = True
        self.player.tasks = TaskQueue()
        self.player.tasks.add_task(self.enemy, TASK_GOTO)
        print "Enemy click Task Attack"
        self.player.tasks.add_task(self.enemy, TASK_ATTACK)
예제 #42
0
파일: Map.py 프로젝트: thethomp/thomp-tbrpg
	def __init__(self):
		yaml_path = 'config/airplane_1_alpha.yaml'
		self.rooms = {}
		self.abilities = []
		self.ability_dict = {}
		self.enemies = {}
		room_data = yaml.load_all( open(yaml_path, 'r') )
	
		### Load map data
		print "Loading map file..."
		for d in room_data:
			newroom = Room()
			newroom.setDescription(d['description'])
			directional_descs = [d['look_north'], d['look_south'], d['look_east'], d['look_west']]
			newroom.setDirectionalDescriptions(directional_descs)
			## Check for alt descriptions
			if 'look_alt_north' in d.keys():
				newroom.setAltDesc('north', d['look_alt_north'])	
				newroom.setAltDescBool('north', False)
			if 'look_alt_south' in d.keys():
				newroom.setAltDesc('south', d['look_alt_south'])	
				newroom.setAltDescBool('south', False)	
			if 'look_alt_east' in d.keys():
				newroom.setAltDesc('east', d['look_alt_east'])	
				newroom.setAltDescBool('east', False)	
			if 'look_alt_west' in d.keys():
				newroom.setAltDesc('west', d['look_alt_west'])	
				newroom.setAltDescBool('west', False)
			moves = [d['north'], d['south'], d['east'], d['west']]
			newroom.setDirectionalMoves(moves)
			self.rooms[(d['x'],d['y'])] = newroom
			room_items = []
			for item in d['items']:
				new_obj = InteractiveObject()
				new_obj.setName(item['name'])
				new_obj.setItems(item['item_list'])
				new_obj.setUnlockItems(item['unlock_item'])
				if len(new_obj.getUnlockItems()) > 0:
					new_obj.setUnlockText(item['unlock_text'])
				new_obj.setKeywords(item['keyword'])
				new_obj.setDirectionToChange(item['map_side_to_change'])
				new_obj.setExamineText(item['examine_text'])
				new_obj.setEquippable(item['equippable'])
				if new_obj.getEquippable():
					new_obj.setStrength(item['strength'])
					new_obj.setIntellect(item['intellect'])
				# Alt text to change
				if 'alt_text_dir' in item.keys():
					new_obj.setAltDescDirection(item['alt_text_dir'])	
				## Droppable items, if any
				d_items = []
				for d_item in item['droppable_items']:
					d_obj = InteractiveObject()
					d_obj.setName(d_item['name'])
					d_obj.setItems(d_item['item_list'])
					d_obj.setUnlockItems(d_item['unlock_item'])
					if len(d_obj.getUnlockItems()) > 0:
						d_obj.setUnlockText(d_item['unlock_text'])
					d_obj.setKeywords(d_item['keyword'])
					d_obj.setDirectionToChange(d_item['map_side_to_change'])
					d_obj.setExamineText(d_item['examine_text'])
					d_obj.setEquippable(d_item['equippable'])
					if d_obj.getEquippable():
						d_obj.setStrength(d_item['strength'])
						d_obj.setIntellect(d_item['intellect'])
					d_items.append(d_obj)
				new_obj.setDroppableItems(d_items)
				room_items.append(new_obj)		
			newroom.setItems(room_items)
			newroom.setEnemies(d['enemies'])
		print "Map file loaded!"
	
		### Load ability data	
		ability_yaml_path = 'config/ability_bank.yaml'
		ability_data = yaml.load_all( open(ability_yaml_path, 'r') )
		for a in ability_data:
			new_a = Ability()
			new_a.setName(a['name'])
			new_a.setLevelReq(a['level_req'])
			new_a.setDamage(a['damage'])
			new_a.setForPlayer(a['for_player'])
			self.ability_dict[a['id']] = new_a
			#self.abilities.append(new_a)

		### Load enemy data
		enemy_yaml = 'config/enemies.yaml'
		enemy_data = yaml.load_all( open(enemy_yaml, 'r') )
		for e in enemy_data:
			new_e = Enemy()
			id = e['id']
			#new_e.setPos((e['x'], e['y']))
			new_e.setName(e['name'])
			new_e.setHP(e['hp'])	
			new_e.setMP(e['mp'])
			new_e.setXP(e['xp'])
			for a_id in e['abilities']:
				new_e.addAbility(self.ability_dict[a_id])
			self.enemies[id] = new_e
예제 #43
0
def encounter_pawn():
    Enemy.create_pawn()
    encounter()
예제 #44
0
파일: master.py 프로젝트: lupo72/fumiko-pyg
def drawEnemies(ALL_ENEMIES):
	for Enemy in ALL_ENEMIES:
		Enemy.draw(DISPLAYSURF)
예제 #45
0
파일: Game.py 프로젝트: vmohheng/NPRZC
#Declare globals
GameSprite.BG = BG
GameSprite.allSprites = allSprites
GameSprite.screenSize = screenSize
GameSprite.bullets = bulletgroup
GameSprite.weapons = weapondisplaygroup

#Initiate hero
hero = Hero((screenSize[0]/2, screenSize[1]/2), screenPos)
hero.enemies = enemygroup
hero.takeWeapon(TestWeapon(hero, 0, 5))
hero.switchWeapon()


#Test enemy
enemy = Enemy((5, 5), screenPos)
enemy.enemies = herogroup
enemy.weapon = Pistol(enemy, 0, 1)
enemy2 = Enemy((130, 5), screenPos)
enemy2.enemies = herogroup
enemy2.weapon = Pistol(enemy2, 0, 1)
allSprites.add(enemy)
enemygroup.add(enemy)
allSprites.add(enemy2)
enemygroup.add(enemy2)
weapondisplaygroup.add(enemy2.weapon)
weapondisplaygroup.add(enemy.weapon)

#Test weapongroup
weap1 = WeaponHolder((100, 400), screenPos, Pistol(hero, 0, 30))
weap2 = WeaponHolder ((100, 450), screenPos, Shotgun(hero, 0, 30))
예제 #46
0
파일: master.py 프로젝트: lupo72/fumiko-pyg
def Animate():
	for Player in PLAYER_LIST:
		Player.update_frame(pygame.time.get_ticks())
	for Enemy in LIST_OF_ENEMIES:
		Enemy.update_frame(pygame.time.get_ticks())
예제 #47
0
def main():
    #setup or define variables and initialize them
    pygame.init()
    Text_color = (0,0,200)
    score = 0
    sound = pygame.mixer.music.load("data/main.ogg")
    frame = pygame.time.Clock()
    screen = Display().createWindow(640, 640)
    player_shoot = True
    enemy_shoot = True
    display_enemy = True
    screen.fill((0,0,234))
    size = pygame.display.get_surface().get_rect().size
    P_pos = [size[0]/2, size[1]-100]
    bullet_speed = 6 #bullet speed for player
    P_image = load_image("player.png", True)
    E_image = load_image("enemy.png", False)
    E_shot = load_image("Enemyshot.png", False)
    P_shot = load_image("Playershot.png", False)
    back = load_image("background.png", True)
    back = pygame.transform.scale(back,(650, 650))
    back_rect = back.get_rect()
    back_rect.topleft = 0, -10
    player = Player(P_image, P_shot, P_pos, bullet_speed)
    player.set_speed(50)
    EnemyList = []
    displayPlayer = True
    EnemyAddCounter = 120
    EnemyOneCounter = 60
    pygame.mouse.set_visible(True)
    bullets = [] #EnemyBullets list
    shot_speed = 8 #bullet speed for enemy
    Display().setTitle("Space Shooter")
    life = 5
    #open the score flat-file
    file = open("data/score.pck", "r")
    f = file.read()
    p_score = int(f)
    file.close()
    if(p_score == 0 or p_score < 20):
        file = open("data/score.pck", "w")
        file.write(str(20))
        p_score = 20
        file.close()
    pygame.mixer.music.play(-1, 0.0)
    while True:
        #the game-loop:
        screen.fill((0,0,234))
        EnemyAddCounter -= 1
        EnemyOneCounter -= 1
        if(EnemyAddCounter == 0):
            EnemyAddCounter = 120
            enemy = Enemy(E_image, E_shot, (random.randint(0, 315), -10), shot_speed)
            enemy.set_speed(5)
            EnemyList.append(enemy)
        
        if(EnemyOneCounter ==0):
            EnemyOneCounter = 60
            enemy = Enemy(E_image, E_shot, (random.randint(320, 575), -10),shot_speed)
            enemy.set_speed(5)
            EnemyList.append(enemy)
        
        screen.blit(back, back_rect)
        createText("Score: " +str(score), 12, (255, 255, 255),10, 10,None )
        createText("Top Score: "+str(p_score), 12, (255,255,255) ,10, 30, None)
        createText("Life: "+str(life), 12, Text_color ,10, 50, None)
        
        for event in pygame.event.get():
            if event.type == QUIT:
                pygame.quit()
                sys.exit()
            if event.type == KEYDOWN:
                if event.key == K_ESCAPE:
                    pygame.quit()
                    sys.exit()
                if event.key == K_LEFT and (player.img_rect.left - 50) >= 0:
                    player.move("left")
                if event.key == K_RIGHT and (player.img_rect.right + 50) <= 670:
                    player.move("right")
                if event.key == K_UP and (player.img_rect.top - 30) >=0:
                    player.move("up")
                if event.key == K_DOWN and (player.img_rect.bottom + 50) <= 640:
                    player.move("down")
                if event.key == K_SPACE and player_shoot:
                    player.shoot()
        for enemy in EnemyList:
            if(random.randint(0, 50) == 2) and enemy_shoot == True:
                enemy.shoot()
            if display_enemy:
                enemy.move_bullets()
                enemy.move()
                enemy.update()
        for enemy in EnemyList:
            if enemy.img_rect.y > 640:
                EnemyList.remove(enemy)
            else:
                for bull in player.bullets:
                    if bull.colliderect(enemy.img_rect):
                        bullets = enemy.bullets
                        EnemyList.remove(enemy)
                        score+= 1
                        player.bullets.remove(bull)
                for bull in enemy.bullets:
                    if(bull.colliderect(player.img_rect)):
                       enemy.bullets.remove(bull)
                       life -= 1
                              
        for rect in bullets:
            if(rect.colliderect(player.img_rect)):
                bullets.remove(rect)
                life -= 1
            if(rect.y > 640):
                bullets.remove(rect)
            else:
                rect.move_ip(0, 8)
                screen.blit(E_shot, rect)
                        
        if(life < 1):
            for bullet in player.bullets:
               player.bullets.remove(bullet)
            for bullet in bullets:
               bullets.remove(bullet)
            for bullet in enemy.bullets:
               enemy.bullets.remove(bullet)
            EnemyList = []
            displayPlayer = False
            player_shoot = False
            enemy_shoot = False
            display_enemy = False
            screen.blit(back, back_rect)
            if(p_score < score):
                file = open("data/score.pck", "w")
                file.write(str(score))
                file.close()
                createText("CONGRATULATION, YOU MADE A NEW HIGH SCORE OF ",20, Text_color,50, 310, None)
                p_score = score
            else:
                createText("GAME OVER, YOU FAILED TO MAKE A NEW HIGH SCORE ", 20, Text_color,50, 310, None)
                createText("PRESS Q TO PLAY AGAIN!!!" , 20, Text_color ,50, 330, None)
                pygame.display.update()

                wait_forkey()
                score = 0
                life = 5
                displayPlayer=True
                display_enemy = True
                enemy_shoot = True
                player_shoot = True
            
        
            
        player.move_bullets()
        if(displayPlayer == True):
            player.update()
        pygame.display.update()
        frame.tick(60)
예제 #48
0
파일: game.py 프로젝트: benleiken/Comp50
COOLDOWN_TIME = 5
ENEMY_IMAGE = 'mutalisk.gif'
NUM_ENEMIES = 10
ENEMY_SPEED = -3


score = 0
clock = pygame.time.Clock()
font = pygame.font.Font(None, 28)

gameover = False
	
	
bc = Battlecruiser(screen, BC_IMAGE, SCREEN_WIDTH/2, SCREEN_HEIGHT - 150, 0, 0)
lasers = []
enemy = Enemy(screen, ENEMY_IMAGE, randint(1,SCREEN_WIDTH), randint(1, SCREEN_HEIGHT), randint(-3,3), ENEMY_SPEED, 0)


bgimage = load_image("ram_aras.png") 
while gameover != True:
	time_passed = clock.tick(FPS)
        screen.fill(BACKGROUND_COLOR)
	screen.blit(bgimage, (0,0))
	score_display = font.render("Score: " + str(score), 1, (255, 255, 255))
	screen.blit(score_display, (10, 10))
	
	key = pygame.key.get_pressed()
	bc.dx = 0
	bc.dy = 0
	bc.draw()
	for laser in lasers:
예제 #49
0
def main():
    play = True
    pyg.init()
    clock = pyg.time.Clock()
    player = Player(540, 578)
    enemy = Enemy()
    left = right = up = boost = start = False
    e_alive = pl_alive = True
    everything = pyg.sprite.Group()
    everything.add(player, enemy)
    platforms = []
    level = ["------------------------------------------------------------------------------------",
             "-                             ",
             "-                             ",
             "-                             ",
             "-                             ",
             "-                        -----------------------------------------------------------",
             "-      ---                   -",
             "-               -----        -",
             "-                            -",
             "--                           -",
             "-                            -",
             "-                            -",
             "-                            -",
             "-   ----                     -",
             "-                            -",
             "-                            -",
             "-              ---           -",
             "-                            -",
             "-                            -",
             "------------------------------"]
    screen = pyg.display.set_mode(DISPLAY)
    bg = Surface((WIN_W,WIN_H))
    bg.fill(BG_COLOUR)
    bl_x = bl_y = 0
    for row in level:
        for symbol in row:
            if symbol == '-':
                block = Blocks(bl_x,bl_y)
                everything.add(block)
                platforms.append(block)
            bl_x += PLATFORM_W
        bl_y += PLATFORM_H
        bl_x = 0
    total_lvl_w = len(level[0]) * PLATFORM_W    # stage's width
    total_lvl_h = len(level) * PLATFORM_H       # stage's height
    camera = Camera(cam_cfg, total_lvl_w, total_lvl_h)
    while play:
        pyg.display.set_caption('BroFormer: FPS = ' + str(int(clock.get_fps())))
        for event in pyg.event.get():
            if event.type == pyg.QUIT:
                play = False
            if event.type == KEYDOWN:
                if event.key == K_LEFT: left = True
                if event.key == K_RIGHT: right = True
                if event.key == K_UP: up = True
                if event.key == 304: boost = True
            if event.type == KEYUP:
                if event.key == K_LEFT: left = False
                if event.key == K_RIGHT: right = False
                if event.key == K_UP: up = False
                if event.key == 304: boost = False
        if not start:
            if player.rect.x in ENEMY_START_BOX_X:
                if player.rect.y in ENEMY_START_BOX_Y:
                    start = True
        enemy.update(player.rect.x, player.rect.y, start, e_alive)
        player.update(enemy.pl_alive, left, right, up, boost, platforms)
        enemy.pl_alive = True
        camera.update(player)
        for something in everything:
            screen.blit(something.image, camera.apply(something))
        pyg.display.update()
        screen.blit(bg, (0,0))
        clock.tick(60)
    pyg.quit()
예제 #50
0
파일: Enemy.py 프로젝트: menohack/Twilight
 def draw(self, screen, camera, time):
     Enemy.draw(self, screen, camera, time)
예제 #51
0
white = (255,255,255)
red = (255, 0, 0)
blue = (0,0, 255)
green = (0,255,0)

pygame.init()

bullets = pygame.sprite.Group()
clock = pygame.time.Clock()

level1 = Level("level2")
level1.levelCreate(0,0)

player = level1.player
level1.all_sprite.add(player.health)
enemy = Enemy(400,0)
level1.enemy_sprite.add(enemy)
level1.all_sprite.add(enemy)
facing = ""
size = [700, 700]
screen = pygame.display.set_mode(size)
pygame.display.set_caption("GAME")

#screen.fill(white)
counter =0

done = False

#clock = pygame.time.Clock()

while done == False:
예제 #52
0
파일: Enemy.py 프로젝트: menohack/Twilight
 def update(self, camera, delta, platforms):
     if(self.isWolf):
         self.dmgFRAMES[0]=self.wolfFRAMES[1]
         self.dmgFRAMES[1]=self.wolfFRAMES[5]
     Enemy.update(self, camera, delta, platforms)
예제 #53
0
        player = Priest(10,0,0,0)
    elif x.lower() == "ranger":
        player = Ranger(10,0,0,3)
    elif x.lower() == "rogue":
        player = Rogue(8,0,0,1)
    elif x.lower() == "scribe":
        player = Scribe(10,0,0,0)
    elif x.lower() == "sorcerer":
        player = Sorcerer(10,0,0,0)

choice(selection)

while player.alive:
    #spawn enemy
    randy = randint(4,9)
    creature = Enemy(randy,0,0,0)
    #display enemy stats
    print("Creature HP: ",creature.health)

    #increment encounter number
    totalEncounters = totalEncounters + 1
    #roll for initiative
    player.rollInit()
    creature.rollInit()
    print("Your initiative roll: ",player.initiative)
    print("The creature's initiative roll: ",creature.initiative)
    input()
    #sort the attackOrder List


    #loop the attack phase until either the enemy or player is dead
예제 #54
0
def playGame(screen, character, currentInfoText):
    screen_rect = screen.get_rect()
    
    level = LevelTutorial("level/tutorial/tutorial.txt", character, currentInfoText)
    world = level.world
    crashman = level.crashman
    pygame.mouse.set_visible(True)

    camera = Camera(screen, crashman.rect, level)
    all_sprite = level.all_sprite

    
    clock = pygame.time.Clock()

    up = down = left = right = False
    x, y = 0, 0


    #randomly selects an enemy port
    enemy_list=[]
    activePortIndex=random.randrange(len(level.enemy_ports))
    activePort=level.enemy_ports[activePortIndex]




    #untilNextSpawn=level.spawn_delay
    untilNextSpawn=0
    totalTime=0
    enemyCount=0

    hud=HUD()



    #this is the while true loop
    while crashman.alive :
        for event in pygame.event.get():

            if event.type == QUIT:
                pygame.quit()
                sys.exit()



            if event.type == KEYDOWN and (event.key == K_ESCAPE or event.key==K_RETURN):
                up=down=left=right=False
                pauseScreen(screen,character)
                
            #control crashman
            keys = pygame.key.get_pressed()  #checking pressed keys
            if keys[pygame.K_UP] or keys[pygame.K_SPACE]:
                up=True
            else:
                up=False
                
            if keys[pygame.K_DOWN]:
                down=True
            else:
                down=False
                
            if keys[pygame.K_LEFT]:
                left=True
            else:
                left=False
                
            if keys[pygame.K_RIGHT]:
                right=True
            else:
                right=False

        #sequential spawn order
        if untilNextSpawn<=0 and enemyCount<level.enemy_max:
            print "ENEMY HERE NOW"
            e=Enemy(activePort[0],activePort[1],activePort[2],level)
            enemy_list.append(e)
            level.all_sprite.add(e)
            world.append(e)
            activePortIndex+=1
            if activePortIndex>=len(level.enemy_ports):
                activePortIndex=0
            activePort=level.enemy_ports[activePortIndex]
            untilNextSpawn=level.spawn_delay
            enemyCount+=1

        #random spawn order
        """if untilNextSpawn<=0 and enemyCount<level.enemy_max:
            print "ENEMY HERE NOW"
            e=Enemy(activePort[0],activePort[1],activePort[2],level)
            enemy_list.append(e)
            level.all_sprite.add(e)
            world.append(e)
            activePortIndex=random.randrange(len(level.enemy_ports))
            activePort=level.enemy_ports[activePortIndex]
            untilNextSpawn=level.spawn_delay
            enemyCount+=1"""


        #removes dead enemies
        for e in enemy_list:
            if e.alive==False:
                print "ded del thjo"
                enemy_list.remove(e)
                all_sprite.remove(e)
                world.remove(e)
                enemyCount-=1

            if e.freshkick==True:
                hud.enemies_defeated+=1
                hud.update()
                e.freshkick=False


        

        #timer and spawn countdown
        #updates hud time
        tpt = tps(clock, FPS)
        totalTime+=tpt
        if hud.time!=math.floor(totalTime):
            hud.time=math.floor(totalTime)
            hud.update()
        
        if enemyCount<level.enemy_max:
            untilNextSpawn-=tpt
            print str(enemyCount)+": "+str(untilNextSpawn)


        #DRAW ORDER:
        #bg, world, elemental, hud
        #camera.draw_sprites(screen, all_sprite)
        level.drawBG(screen)
        camera.draw_sprites_prio(screen, all_sprite, crashman)

        if level.elemental:
            level.elementalOverlay.draw(screen)

        hud.draw(screen)
        level.drawInfo(screen)

        #final updates
        crashman.update(up, down, left, right)
        for e in enemy_list:
            e.update(tpt)
        camera.update()
        pygame.display.flip()


    #################################
    #game complete
    #pygame.display.flip()
    playGame(screen,character, level.currentInfoBlock.infoText)