def load_map(): # Загрузка карты for y in range(len(map_txt)): for x in range(len(map_txt[y])): platform = map_txt[y][x] if platform == '#': platform = '#-' key = up_or_down(x, y, platform) key += ' ' + right_or_left(x, y, platform) if key == ' ' and map_txt[y][x + 1] in platform and map_txt[y - 1][x] in platform \ and map_txt[y - 1][x + 1] not in platform: key = 'descent' Sprite(platforms[KEY_PLATFORM[key.strip(' ')]], Transform((x * 100, y * 100)), borders_group) elif platform == '-': key = 'bridge ' key += right_or_left(x, y, platform) Sprite(platforms[KEY_PLATFORM[key.strip(' ')]], Transform((x * 100, y * 100)), borders_group) elif platform == '=': key = 'iron ' key += right_or_left(x, y, platform) Sprite(irons[KEY_PLATFORM[key.strip(' ')]], Transform((x * 100, y * 100)), borders_group) if 'left' in key: Sprite(load_image('Tros.png'), Transform((x * 100 + 40, y * 100 - 2000))) elif 'right' in key: Sprite(load_image('Tros.png'), Transform((x * 100 + 50, y * 100 - 2000))) elif platform == '|': for i in range(20): Sprite(load_image('rope.png'), Transform((x * 100, y * 100 - 100 * i)), ropes_group) elif platform == 'f': Sprite(load_image('flag.png'), Transform((x * 100, y * 100))) elif platform == 'b': Bandages(load_image('bandages.png'), Transform((x * 100, y * 100))) # Добавление врагов после прогрузки карты для того, что бы плаформы не были на врагах for y in range(len(map_txt)): for x in range(len(map_txt[y])): platform = map_txt[y][x] if platform == '1': Enemy(0, Transform((x * 100, y * 100))) elif platform == '2': Enemy(1, Transform((x * 100, y * 100))) elif platform == '3': Enemy(2, Transform((x * 100, y * 100))) elif platform == '4': Enemy(3, Transform((x * 100, y * 100))) elif platform == '5': Enemy(4, Transform((x * 100, y * 100)))
def stage_check(screen, playerammos, enemies, enemyammos, stages, imgs): """Define the process of setting up each in-game stage.""" if stage_clear(enemies): try: line_up = next(stages) time.sleep(0.5) except StopIteration: return True else: playerammos.empty() enemyammos.empty() enemies.empty() # spawn new enemies for next stage. global current_stage current_stage = line_up.id[0] for type, amount in enumerate(line_up[1:-1], 1): if amount != 0: for new_enemy in range(amount): enemies.add(Enemy(screen, type)) # spawn the upgrade pack. if line_up.upgrade: enemies.add(Enemy(screen, 0)) # display the stage background images. if current_stage == '1': screen.blit(imgs[0], (0, 0)) elif current_stage == '2': screen.blit(imgs[1], (0, 0)) elif current_stage == '3': screen.blit(imgs[2], (0, 0)) return False
def __init__(self): self.__arena = Arena() self.__player = Mando(self.__arena.board) self.__enemy = Enemy(self.__arena.board) self.__score = 0 self.__start = time.time() self.__frame = 0 self.__framerate = 2
def create_foe(self, foe_type): """ Создание противника заданного типа :param foe_type: Тип создаваемого противника :return: """ self.foe = Enemy(foe_type)
def add_enemy(cronies, objectList): # Go through the array above and add platforms for crony in cronies: obj = Enemy(x=crony[0], y=crony[1], width=crony[2], height=crony[3], end=crony[4]) objectList.add(obj)
def update_enemies(screen, enemies, key_actions): """Control all enemy ship objects.""" if '++1' in key_actions: enemies.add(Enemy(screen, 1)) if '++2' in key_actions: enemies.add(Enemy(screen, 2)) if '++3' in key_actions: enemies.add(Enemy(screen, 3)) if '++4' in key_actions: enemies.add(Enemy(screen, 4)) if '++0' in key_actions: enemies.add(Enemy(screen, 0)) if 'NXT' in key_actions: enemies.empty() for enemy in enemies: if enemy.check_dead(): enemy.kill() else: screen.blit(enemy.image, enemy.rect) enemy.update()
def obj_maker(self): """Makes all the Objects in the Game""" for i in self.coords: if i[2] == "brick": self.walls.append(Wall(i[0], i[1])) elif i[2] == "unknown": self.unknowns.append(Unknown(i[0], i[1])) for i in self.pipe_coords: self.pipes.append(Pipe(i[0], i[1])) for i in self.enemy_coords: self.enemies.append(Enemy(i[0], i[1], i[2])) self.flag.append(Flag(config.FLAG_X, config.FLAG_Y))
def Battle(prota): """Given a protagonist of the battle starts, or not, fighting""" import random as rdm a = rdm.randint(0, 5) if a == 0: prota.health = 100 print( """This night was pacific, I didn't needed to fight, and I could take a break, but I won't be so luky next time""") else: print("OH! what are this creatures??\nARGh!") a = rdm.randint(0, 5) for i in range(a): # Creates randomly which type of enemy he will fight r = rdm.randint(0, 5) if r == 0: goblin = Enemy(creature="Goblin", damage=10, defense=0, life=10) fight(prota, goblin) elif r == 1: troll = Enemy(creature="Troll", damage=20, defense=0, life=30) fight(prota, troll) elif r == 2: supertroll = Enemy(creature="SuperTroll", damage=40, defense=0, life=50) fight(prota, supertroll) elif r == 3: urukhai = Enemy(creature="Uruk Hai", damage=60, defense=5, life=70) fight(prota, urukhai) elif r == 4: nazgul = Enemy(creature="Nazgul", damage=80, defense=20, life=100) fight(prota, nazgul) elif r == 5: sphanemperor = Enemy(creature="Stephan the Emperor", damage=100, defense=30, life=150) fight(prota, sphanemperor) else: print("Something is wrong creating the battle")
def main(): my_hero = Hero(name='Wencakisa', title='Kingslayer', health=100, mana=100, mana_regeneration_rate=2) my_enemy = Enemy(health=100, mana=100, damage=10) my_weapon = Weapon(name='Windcutter', damage=10) my_spell = Spell(name='Fireball', damage=7, mana_cost=4, cast_range=1) my_hero.equip(my_weapon) my_hero.learn(my_spell) while my_hero.is_alive() and my_enemy.is_alive(): print(my_enemy.attack(enemy=my_hero)) my_enemy.take_healing(healing_points=40) print(my_hero.attack(by='spell', enemy=my_enemy)) print(my_hero.attack(by='weapon', enemy=my_enemy))
from characters import Enemy from characters import NPC from roomList import Room enemies = { 'skeleton': Enemy('Skeleton', "village", 20, ['Rusty Sword'], ['Wooden Shield']) }
class Engine: """Generating the backend of the game Each game will be an instance of the Engine """ def __init__(self): self.__arena = Arena() self.__player = Mando(self.__arena.board) self.__enemy = Enemy(self.__arena.board) self.__score = 0 self.__start = time.time() self.__frame = 0 self.__framerate = 2 def transition(self, key): status = 0 self.__framerate = self.__player.frate() if self.__frame < WIDTH - ENEMY_OFFSET: for i in range(self.__framerate): self.__frame += 1 status += self.__player.move_relative(self.__arena.board, self.__frame) self.__player.checkmag(self.__arena.board, self.__frame) status += self.__player.move(self.__arena.board, key, self.__frame) self.__player.upd_att(self.__arena.board, key, self.__frame) self.__enemy.move(self.__arena.board, self.__player.location) if int(time.time() - self.__start) % 3 == 0: self.__enemy.shoot(self.__arena.board) self.__enemy.move_ice(self.__arena.board) self.__score += status if self.__score > 10: self.__player.activate_dragon() self.__player.render_tail(self.__arena.board) def repaint(self): # sys.stdout.flush() # sys.stdout.write("\x1bc") print("\x1bc") self.__arena.render(self.__frame, self.__enemy.location) print( f"Score: {self.__score}\t Lives: {self.__player.lives}\t Time Left: {int(GAME_TIME - (time.time() - self.__start))}secs\t Enemy Lives: {self.__enemy.lives}\n" ) def game_over(self): # sys.stdout.write("\x1bc") print("GAME OVER!!") print(f"Final Score: {self.__score}") def win(self): print(f"You Win!\nFinal Score: {self.__score}") def play(self): KEYS = NBInput() KEYS.nb_term() while time.time() - self.__start < GAME_TIME: self.repaint() time.sleep(0.08) INPUT = "" if KEYS.kb_hit(): INPUT = KEYS.get_ch() self.transition(INPUT) KEYS.flush() if self.__enemy.lives <= 0: self.win() break if self.__player.lives <= 0: self.game_over() break
# player - p1 = Player(x=PLAYER_X, y=PLAYER_Y, screen=screen, image_path="./images/space-invaders.png") # list of enemies - enemies = list() # make 2 rows for j in range(2): # of 10 enemies each for i in range(10): enemy = Enemy(x=((PAGE_WIDTH - 2 * PAGE_BORDER) // 11) * (i + 1), y=ENEMY_Y + j * ENEMY_START_HEIGHT, screen=screen, image_path="./images/spaceship.png", respawn_status=False) enemies.append(enemy) # bullet - b = Bullet(x=BULLET_X, y=BULLET_Y, screen=screen, image_path="./images/bullet.png") # main function - def main(): # score variable score = 0