def __init__(self, width=WINDOW_WIDTH, height=WINDOW_HEIGHT, monsters_count=5, asteroids_count=3, goal=10, max_lost=10, life_count=3): self.width = width self.height = height # Display self.window = display.set_mode((width, height)) display.set_caption("Шутер") self.background = transform.scale(image.load(BACKGROUND_IMG_PATH), (width, height)) # Fonts and final messages font.init() self.final_message_font = font.SysFont('Arial', 36) self.params_font = font.SysFont('Arial', 36) self.win = self.final_message_font.render('YOU WIN', True, (255, 255, 255)) self.lose = self.final_message_font.render('YOU LOSE', True, (180, 0, 0)) # Sprites self.player = Player(self.window, PLAYER_IMG_PATH, 5, height - 80, 80, 100, 4) self.monsters = sprite.Group( *(Enemy(self.window, MONSTER_IMG_PATH, randint(5, width - 5), 0, 80, 50, randint(2, 5)) for _ in range(monsters_count))) self.asteroids = sprite.Group( *(Asteroid(self.window, ASTEROID_IMG_PATH, randint(5, width - 5), 0, 80, 50, randint(2, 5)) for _ in range(asteroids_count))) # Music mixer.init() mixer.music.load(SPACE_MUSIC) mixer.music.play() self.fire_sound = mixer.Sound(FIRE_MUSIC) # Base game vars self.game = True self.rel_time = False self.finish = False self.goal = goal self.max_lost = max_lost self.life_count = life_count self.num_fire = 0 self.score = 0 self.lost = 0
def spawn_enemies(self, pop=1): """ Creates pop number of enemies Enemies spawn in the 1st quadrant of the game display :param pop: population :return: """ for enemy in range(pop): # Draw positions from top left corner pos = (random.random() * self.W_WIDTH / 2, random.random() * self.W_HEIGHT / 2) Enemy(pos, self.background)
def enter(): global mario, map, enemy, object mario = Mario() map = Map() enemy = Enemy() object = Object() game_world.add_object(map, 0) game_world.add_object(object, 1) game_world.add_object(mario, 2) game_world.add_object(enemy, 3) pass
def __init__(self, win, velocity, height): self.proj = Enemy(velocity=55, height=550) self.marker = Image(Point(-100, 550), 'car_right.gif') self.marker.draw(win) #second car: self.proj2 = Enemy(velocity=67, height=500) self.marker2 = Image(Point(-100, 500), 'car_right.gif') self.marker2.draw(win) self.proj3 = Enemy(velocity=53, height=115) self.marker3 = Image(Point(-100, 115), 'wood.gif') self.marker3.draw(win) self.proj4 = Enemy(velocity=67, height=150) self.marker4 = Image(Point(-100, 150), 'wood.gif') self.marker4.draw(win) self.proj5 = Enemy(velocity=60, height=450) self.marker5 = Image(Point(-100, 450), 'car_right.gif') self.marker5.draw(win)
def _create_enemy(self, row_number: int, column_number: int) -> Enemy: """Creates a new enemy""" enemy = Enemy(self) enemy.width = enemy.rect.width enemy.height = enemy.rect.height enemy.rect.x += column_number * (2*enemy.width) enemy.rect.y += row_number * (2*enemy.height) if self.settings.full_screen_mode: enemy.rect.x += 4.5*enemy.width return enemy
def create_enemy(): while True: rand = random.randint(0, 4) if rand == 1: distance = random.randint(-50, 50) enemy = Enemy(enemyImg, display_width, (display_height/2) + distance) enemy_list.append(enemy) elif rand == 2: distance = random.randint(-50, 50) enemy = Enemy(enemyImg, 0, (display_height/2) + distance) enemy_list.append(enemy) elif rand == 3: distance = random.randint(-50, 50) enemy = Enemy(enemyImg, (display_width/2) + distance, display_height) enemy_list.append(enemy) elif rand == 4: distance = random.randint(-50, 50) enemy = Enemy(enemyImg, (display_width/2) + distance, 0) enemy_list.append(enemy) time.sleep(game_tick*100)
def previous_lvl(self): self.player.add_money(self.enemy.get_money()) if self.enemy: del self.enemy if self.lvl <= 1: self.lvl = 1 else: self.lvl -= 1 self.enemy = Enemy(self.lvl, self.lvl) pygame.display.update()
def explore(self): if self.state != 'normal': print ("%s is too busy right now!" % self.name) self.enemy_attacks() else: print ("%s explores a twisty passage." % self.name) if randint(0, 1): self.enemy = Enemy(self) print ("%s encounters %s!" % (self.name, self.enemy.name)) self.state = 'fight' else: if randint(0, 1): self.tired()
def __init__(self): self.world = World() self.current_tm = 0 self.tm_offsetX = 16 self.tm_offsetY = 0 self.world.push(Player(30, 30, 8, 8)) self.world.push(Enemy(30, 110, 8, 8, 5)) self.push_the_objects()
def test_with_weapon_should_attack_by_weapon(self): h = Hero(name="Bron", title="Dragonslayer", health=100, mana=100, mana_regeneration_rate=2) h.equip(Weapon(name="The Axe of Destiny", damage=20)) e = Enemy() Fight(h, e) self.assertEqual(h.attacking, PLAYER_ATTACK_BY_WEAPON_STRING)
def sendEnemiesEndless(self): if self.waveCalled: if len(self.enemies) != 0: if self.enemies[-1].distance >= self.enemiesToGo["delay"]: self.enemies.append( Enemy(self.road, self.enemiesToGo["HP"] * self.wave, self.enemiesToGo["color"], self)) self.enemiesToGo["units"] -= 1 if self.enemiesToGo["units"] == 0: if not (self.parent.parent.parent.menuboard.autoSendingBtn. isChecked()): self.waveCalled = False self.wave += 1 self.enemiesToGo["units"] += self.wave else: self.enemies.append( Enemy(self.road, self.enemiesToGo["HP"] * self.wave, self.enemiesToGo["color"], self)) self.enemiesToGo["units"] -= 1 if len(self.enemies) == 0 and self.wave != 1: self.waveCalled = True
def init_model(self): # 创建实例对象 # 地图背景实例 self.background = Background(0, 0, self.window, self.bg_image_path) # 敌机对象实例 self.enemy1 = Enemy(random.randint(120, WINDOW_WIDTH - 120), 0, self.window, "res/img-plane_%d.png" % random.randint(1, 7)) self.enemy2 = Enemy(random.randint(120, WINDOW_WIDTH - 120), random.randint(0, WINDOW_HEIGHT - 68), self.window, "res/img-plane_%d.png" % random.randint(1, 7)) self.enemy3 = Enemy(random.randint(120, WINDOW_WIDTH - 120), random.randint(0, WINDOW_HEIGHT - 68), self.window, "res/img-plane_%d.png" % random.randint(1, 7)) self.enemy4 = Enemy(random.randint(120, WINDOW_WIDTH - 120), random.randint(0, WINDOW_HEIGHT - 68), self.window, "res/img-plane_%d.png" % random.randint(1, 7)) self.enemy5 = Enemy(random.randint(120, WINDOW_WIDTH - 120), random.randint(0, WINDOW_HEIGHT - 68), self.window, "res/img-plane_%d.png" % random.randint(1, 7)) self.enemy6 = Enemy(random.randint(120, WINDOW_WIDTH - 120), random.randint(0, WINDOW_HEIGHT - 68), self.window, "res/img-plane_%d.png" % random.randint(1, 7)) global enemy_lis enemy_lis = [ self.enemy1, self.enemy2, self.enemy3, self.enemy4, self.enemy5, self.enemy6 ] self.enemy_lis = enemy_lis # 玩家飞机实例 self.player = Plane(196, 660, self.window, self.hero_image_path, self.enemy_lis)
def init_game(): pygame.init() game_settings = Settings() screen = pygame.display.set_mode( (game_settings.screen_width, game_settings.screen_height), pygame.FULLSCREEN) # screen = pygame.display.set_mode((game_settings.screen_width, game_settings.screen_height)) ship = Ship(screen) stats = GameStats(game_settings) friend = Friend(screen) enemy = Enemy(screen) enemy_2 = Enemy_2(screen) enemy_3 = Enemy_3(screen) enemy_4 = Enemy_4(screen) enemy_5 = Enemy_5(screen) enemy_6 = Enemy_6(screen) enemy_7 = Enemy_7(screen) enemy_8 = Enemy_8(screen) enemy_9 = Enemy_9(screen) hook = Hook(screen) background = Background(screen) pygame.display.set_caption("Peter Pan") bullets = Group() enemies = Group() enemies.add(enemy, enemy_2, enemy_3, enemy_4, enemy_5, enemy_6, enemy_7, enemy_8, enemy_9, hook) friends = Group() friends.add(friend) ships = Group() ships.add(ship) #g_f.create_fleet(game_settings, screen, ship) button = Button(screen, game_settings, "Play") sb = Scoreboard(game_settings, screen, stats) while True: g_f.chek_events(game_settings, ship, screen, bullets, button, stats, enemies, sb) g_f.update_screen(background, ships, bullets, enemies, screen, button, friends, stats, sb) if stats.game_active: g_f.update_bullets(bullets, enemies, ships, friends, hook, stats, sb, screen) g_f.aliens_move(enemies, screen, friends, ships, bullets, ship) ship.update() ship.blitme()
def spawn_enemy(): ran_spawn = random.randrange(1, 3) if ran_spawn == 1: enemy_list = [Enemy(1955, 1230), Enemy(2350, 1230), Enemy(1650, 1050)] elif ran_spawn == 2: enemy_list = [ Enemy(1140, 1290), Enemy(1290, 750), Enemy(1955, 1230), ] elif ran_spawn == 3: enemy_list = [ Enemy(2350, 1230), Enemy(1290, 750), Enemy(1650, 1050), ] enemies = enemy_list return enemies
def create_fleet(ai_settings, screen, enemies): enemy_x = [0, 240, 480] numpy.random.shuffle(enemy_x) rand_int = random.randint(1, 3) if len(enemies) + rand_int > ai_settings.enemies_allowed: count = ai_settings.enemies_allowed - len(enemies) else: count = rand_int for x in enemy_x[0:count]: enemy = Enemy(ai_settings, screen) enemy.x = x enemy.rect.x = enemy.x enemies.add(enemy)
def add(self, x, y, e_type="a"): """ create and add new enemy """ enemy = Enemy(self._surf) enemy.init(e_type) enemy.x = x enemy.y = y self._enemies.append(enemy) return enemy
def create_random_enemies(Number_of_enemies, wall_list, enemies_list, all_sprite_list, level): numberOfEnemies = 0 while numberOfEnemies < Number_of_enemies: x1 = randint(0, 14) y1 = randint(0, 12) if level[y1][x1] == 0: level[y1][x1] = 3 enemy = Enemy(60 * x1, 60 * y1) enemies_list.add(enemy) enemy.walls = wall_list all_sprite_list.add(enemy) numberOfEnemies += 1
def GenerateTrainingData() -> List[Tuple[Action, Action, Result]]: classificationData = [] badGuy: Enemy = Enemy() combatResultDeterminator: Determinator = Determinator() for trainingData in range(10000): playerAction: Action = GetPlayerAction() enemyResponse: Action = badGuy.Response(playerAction) result: Result = combatResultDeterminator.DetermineResult( enemyResponse) classificationData.append((playerAction, enemyResponse, result)) return classificationData
def test_with_given_spell_and_not_enough_enemy_mana_raises_LogicError( self): enemy = Enemy(health=100, mana=20, damage=20) s = Spell(name="Fireball", damage=30, mana_cost=50, cast_range=2) enemy.learn(s) err = None try: enemy.attack(by='magic') except Exception as exc: err = exc self.assertIsNotNone(err) self.assertEqual(str(err), 'No mana!')
def explore(self): if self.state != 'normal': print("%s is too busy right now!" % self.name) self.enemy_attacks() else: print("%s explores through the hallways." % self.name) if randint(0, 1): self.enemy = Enemy(self) print("%s comes face to face with %s!" % (self.name, self.enemy.name)) self.state = 'fight' else: if randint(0, 1): self.tired()
def set_level(self, level): ## method for loading levels from files ## self.level = Level(level) self.grid_size = self.level.size self.aspect_x = self.grid_size[0] / self.grid_size[1] self.aspect_y = self.grid_size[1] / self.grid_size[0] self.grid = self.level.map for row in self.grid: for item in row: self.add_widget(item) self.enemy = Enemy('DEFAULT', self.level)
def test_enemy_take_damage_5(self): enemy = Enemy(hit_points=12, lives=5) enemy.take_damage(24) self.assertEqual(enemy.lives, 3) self.assertEqual(enemy.hit_points, 12) enemy.take_damage(24) self.assertEqual(enemy.lives, 1) self.assertEqual(enemy.hit_points, 12) enemy.take_damage(12) self.assertEqual(enemy.lives, 0) self.assertEqual(enemy.hit_points, 0)
def __init__(self): global WINDOW_HEIGHT, WINDOW_WIDTH, CAPTION, FPS, COLKEY pyxel.init(WINDOW_WIDTH, WINDOW_HEIGHT, caption=CAPTION, fps=FPS) # === Generate Instances === self.player = Player() self.enemy = Enemy() self.backgnd = BackGround() # TODO: make game title self.player.beGameover() # not good way ... pyxel.load("asset/asset.pyxel") pyxel.run(self.update, self.draw)
def next_lvl(self): self.player.add_money(self.enemy.get_money()) if self.board: del self.board if self.enemy: del self.enemy self.lvl += 1 self.board = Board(400, 50) self.enemy = Enemy(self.lvl, self.lvl) pygame.display.update()
def test_with_weapon_and_spell_should_attack_by_higher_damage(self): h = Hero(name="Bron", title="Dragonslayer", health=100, mana=100, mana_regeneration_rate=2) h.learn(Spell(name="Fireball", damage=20, mana_cost=50, cast_range=2)) h.equip(Weapon(name="The Axe of Destiny", damage=30)) e = Enemy() Fight(h, e) self.assertEqual(h.attacking, PLAYER_ATTACK_BY_WEAPON_STRING)
def test_init_fiht(self): h = Hero(name="Bron", title="Dragonslayer", health=100, mana=100, mana_regeneration_rate=2) e = Enemy() f = Fight(h, e) self.assertIsNotNone(f) self.assertIsNotNone(f.hero) self.assertIsNotNone(f.enemy)
def enter(): global mario, map, enemy, object, fire_ball mario = Mario() map = Map() enemy = Enemy() object = Object() fire_ball = Ball() game_world.add_object(map, 0) game_world.add_object(object, 1) game_world.add_object(mario, 0) game_world.add_object(enemy, 1) pass
def test_with_given_enemy_and_invalid_by_as_argument_should_raise_exception( self): e = Enemy() by = None exc = None try: e.attack(by=by) except Exception as e: exc = e self.assertIsNotNone(exc) self.assertEqual(str(exc), 'Invalid item for attack given')
def __init__(self): self.command_registry = CommandRegistry(self) self.item_registry = ItemRegistry(self) self.player = Player("AAAAA") self.player.inventory.add_item( self.item_registry.get_item("Crude Bronze Shortsword")) enemy = Enemy("Dummy") self.current_encounter = Encounter(enemy) self.gameloop()
def rest(self): if self.state != 'normal': print( "%s can't rest now!" % self.name); self.enemy_attacks() else: print( "%s rests." % self.name) if randint(0, 1): self.enemy = Enemy(self) print ("%s is rudely awakened by %s!" % (self.name, self.enemy.name)) self.state = 'fight' self.enemy_attacks() else: if self.health < self.health_max: self.health = self.health + 1 else: print ("%s slept too much." % self.name); self.health = self.health - 1