def level5(self): enemies = [] enemies.append(enemy.Enemy(self.blue_image, 322, 20)) enemies.append(enemy.Enemy(self.blue_image, 625, 40)) enemies.append(enemy.Enemy(self.red_image, 460, 205, True)) enemies.append(enemy.Enemy(self.blue_image, 270, 305)) enemies.append(enemy.Enemy(self.blue_image, 320, 405)) return enemies
def enter(): print("GameState Enter") global target, target_pos target_pos = 0, 0 target = gfw.load_image('res/target.png') #--------------------------------------------------------------------------# gfw.world.init( ['plat', 'potal', 'grass', 'obj_dead', 'en', 'player', 'b', 'p', 'ui']) #월드 init global grass, player, platform, bg, count, en, plat, obj_dead, bg_last bg = gfw.load_image('res/background_grass.png') bg_last = gfw.load_image('res/background_wall.png') grass = platforms.Grass() gfw.world.add(gfw.layer.grass, grass) player = Player() gfw.world.add(gfw.layer.player, player) count = 4 for x, y in STAGE_LIST[count]: plat = platforms.Platform(count, x, y) gfw.world.add(gfw.layer.plat, plat) for x in PLNAT_MONSTER_LIST[count]: en = enemy.Enemy((x, 400), 1) gfw.world.add(gfw.layer.en, en) for x in TREE_MONSTER_LIST[count]: en = enemy.Enemy((x, 400), 2) gfw.world.add(gfw.layer.en, en) for x in BOMB_MONSTER_LIST[count]: en = enemy.Enemy((x, 800), 3) gfw.world.add(gfw.layer.en, en) #--------------------------------------------------------------------------# global gameover_img, gameover, entershow gameover = False gameover_img = gfw.image.load('res/gameover.png') entershow = load_image('res/enter2.png') #--------------------------------------------------------------------------# global music_bg, wav_attack, wav_bomb, wav_shield_sound, wav_bullet, wav_hit1, wav_hit2, wav_hit3, wav_die, hit wav_attack = load_wav('res/shoot.ogg') wav_bomb = load_wav('res/bomb.wav') wav_bullet = load_wav('res/bullet.ogg') wav_hit1 = load_wav('res/pain1.wav') wav_hit2 = load_wav('res/pain2.wav') wav_hit3 = load_wav('res/pain3.wav') hit = [wav_hit1, wav_hit2, wav_hit3] wav_die = load_wav('res/die.wav') wav_shield_sound = load_wav('res/shield_sound.wav') music_bg = load_music('res/map.wav') #--------------------------------------------------------------------------# global font_a, score #font_a = load_font('res/Pixel.ttf', 38) font_a = load_font('res/Pixel.ttf', 38) score = 0 #--------------------------------------------------------------------------# highscore.load() music_bg.repeat_play()
def reset(self): self.clock = pygame.time.Clock() self.time = 0 self.state = "intro" self.movement = 360 self.doublePlayer = False self.enemyNumber = 1 self.enemy1 = enemy.Enemy(self.width, self.height, 1) self.enemy2 = enemy.Enemy(self.width, self.height, 2)
def update(): global lazers global frame global frames2 player.update(maps.getBlocks()) removeLazers = [] for enemys in enemies: enemys.update(maps.getBlocks(), player, player.getLazers()) if enemys.getRemoveLazer() != "": removeLazers.append(enemys.getRemoveLazer()) if pygame.mouse.get_pressed()[0]: if frame % 300 == 0: player.addLazer() frame += 1 if frame > 300 and not pygame.mouse.get_pressed()[0]: frame = 300 maps.update() if frames % TIME == 0: spots = maps.getSpawns() spot = random.randint(0, len(spots) - 1) spot = spots[spot] enemies.append(enemy.Enemy(spot[0], spot[1], 30, 30, enemy1)) frames2 += 1 for enemys in enemies: for lazer in player.getLazers(): if lazer == enemys.getRemoveLazer(): player.removeLazer(lazer) if enemys.getAlive() == False: enemies.remove(enemys)
def spawn_enemy(): x = height - 6 y = bidi.left + random.randint(int(width / 2), width - 5) fl = 1 for enem in en: if (y == enem.yc): fl = 0 #if(bidi[x][y] == 'M'): #here you will see where the enemies not to be spawned -------FUTURE #fl=0 if (board.screen[x][y] != ' ' or board.screen[x][y + 1] != ' ' or board.screen[x + 1][y] != ' ' or board.screen[x + 1][y + 1] != ' '): fl = 0 if (board.screen[x][y] == ' ' and board.screen[x][y] == ' ' and board.screen[x + 2][y] == ' ' and board.screen[x + 2][y] == ' '): fl = 0 if (fl): ene = enemy.Enemy(x, y, 1) en.append(ene) else: spawn_enemy()
def create_board(): ''' Creates board and fills in Obstacles and Scenery ''' board = list() for i in range(int(defs.rows)): temp_list = list() for _ in range(defs.board_len): if i==0 or i==0: clouds.add_element(temp_list,fn=34) elif i==int(defs.rows)-1 : clouds.add_element(temp_list,fn=32) else: clouds.add_element(temp_list,cont=1) board.append(temp_list) defs.board_len-=int(defs.columns) # clouds.Clouds(100,board) defs.plain_board=copy.deepcopy(board) arcs.Arcs((2*int(defs.rows)//3+1),board) coins.Coins(100,board) powerup.Powerup(defs.board_len//5) enemy.Enemy(40) magnet.Magnet(200,10) # defs.board_len+=int(defs.columns) return board
def __init__(self): """ Constructor. Create all our attributes and initialize the game. """ self.game_over = False # Create sprite lists self.enemy_list = pygame.sprite.Group() self.all_sprites_list = pygame.sprite.Group() # Create the player self.player = player.Player() self.all_sprites_list.add(self.player) self.enemyDefeated = False # Create the enemy(ies) i = design.difficulty while i > 0: my_enemy = enemy.Enemy() my_enemy.rect.x = random.randrange(design.SCREEN_HEIGHT) my_enemy.rect.y = random.randrange(-300, design.SCREEN_HEIGHT) self.enemy_list.add(my_enemy) self.all_sprites_list.add(my_enemy) i -= 1 '''
def act(self): self.timer.tick(60) self.check_platforms() keys = pygame.key.get_pressed() if keys[K_LEFT]: self.movePlatformsLeft() if self.bonus != None: self.moveShirukenPULeft() elif keys[K_RIGHT]: self.movePlatformsRight() if self.bonus != None: self.moveShirukenPURight() ## we can choose the distance between the number of platforms if self.weShouldAddPlatform(): new_platform = platform.Platform(getLevelPlatformImage()) surface_manager.add(new_platform) self.current_platforms.append(new_platform) if self.weShouldAddPowerUp(): self.bonus = powerup.ShurikenPU() surface_manager.add(self.bonus) self.time_since_last_powerup = time.clock() if self.weShouldAddEnemy(): self.ennemies = enemy.Enemy() surface_manager.add(self.ennemies) self.time_since_last_enemyspawn = time.clock()
def reset_game(): run_ = True # Init Player p_ = player.Player() # Init Enemy e_ = enemy.Enemy() # Group for bullets bullets_ = pygame.sprite.Group() # Init Environment for AI to learn env_ = environment.Environment(e_, p_, bullets_) score_ = 0 # X pos of agent init_x_enemy_norm_ = np.interp(e_.x, [0, 1000], [0, 1]) # X pos of player init_x_player_norm_ = np.interp(p_.x, [0, 1000], [0, 1]) # Set the state to X pos of player and enemy my_tensor_ = tf.constant([[init_x_enemy_norm_, init_x_player_norm_]]) my_variable_ = tf.Variable(my_tensor_, dtype=np.float64) config.level = 1 return run_, p_, e_, bullets_, env_, score_, my_variable_
def _init_movement_objects(self): self.pacman = pacman.Pacman(self, self.mixer) self.movement_objects.append(self.pacman) for index, ghost_name in enumerate(constants.GHOST_NAMES): self.movement_objects.append(enemy.Enemy( ghost_name, self.map_objects['spawn_ghosts'][index], self))
def setup_sprite(self): self.weapon_sprites = pygame.sprite.Group() #保存武器精灵 self.enemy_weapon_sprites = pygame.sprite.Group() #保存武器精灵 self.hero_and_enemy = pygame.sprite.Group() HEROIMAGE = pygame.image.load(u'.\\res\\red_wolf.png') self.tank = tank.Hero((64, 64), HEROIMAGE, face_to={ 'UP': False, 'DOWN': True, 'LEFT': False, 'RIGHT': False }) self.hero_and_enemy.add(self.tank) self.explo_sprites = pygame.sprite.Group() self.enemy_sprites = pygame.sprite.Group() ENEMYIMAGE = pygame.image.load(u'.\\res\\enemy.png') for i in range(1): self.enemy = enemy.Enemy((608, 64 + i * 32), ENEMYIMAGE, face_to={ 'UP': False, 'DOWN': False, 'LEFT': True, 'RIGHT': False }) self.enemy_sprites.add(self.enemy)
def __init__(self, path=None, *args, **kwargs): super().__init__(*args, **kwargs) self.label = pyglet.text.Label("", x=0, y=self.height - 10, font_name="Courier New", font_size=10, multiline=True, width=2000) self.char_label = pyglet.text.Label("", x=0, y=self.height - 10, font_name="Courier New", font_size=10, multiline=True, width=2000, color=(255, 0, 0, 255)) self.meta_label = pyglet.text.Label("", x=720, y=self.height - 10, font_name="Courier New", font_size=10, multiline=True, width=2000) self.notifications_label = pyglet.text.Label("No notifications yet\n", x=0, y=self.height - 720, font_name="Courier New", font_size=10, multiline=True, width=2000) self.mg = mapgen.MapGenerator(path) self.pos = list(reversed(self.mg.start)) self.Character = character.Character(*self.pos, "Maiq") self.enemies = [enemy.Enemy(*p) for p in self.mg.enemies]
def nextRound(Round, enemies): r = 0 while (r < Round): xO = 1 + r * 5 yO = -50 - r enemies.append(enemy.Enemy(xO, yO)) xT = width + 50 + r yT = 1 + r * 5 enemies.append(enemy.Enemy(xT, yT)) xH = -50 - r yH = height - r * 5 enemies.append(enemy.Enemy(xH, yH)) xF = width - r * 5 yF = height + 50 + r enemies.append(enemy.Enemy(xF, yF)) r += 1
def spawn_enemies(n, level): #n is the number of enemies to spawn possible_enemy_locations = { 1: [(500, 100), (200, 400), (800, 200), (100, 100), (500, 300)], 2: [(300, 300), (100, 200), (400, 100), (200, 400), (300, 100), (100, 300)], 3: [(200, 200), (300, 100), (400, 200), (500, 300), (300, 100), (100, 300), (600, 100), (600, 200)] } if n <= len(possible_enemy_locations[level]): enemies = [] for i in range(n): location = random.choice(possible_enemy_locations[level]) possible_enemy_locations[level].remove(location) x = location[0] y = location[1] new_enemy = enemy.Enemy(level=level) new_enemy.x = x new_enemy.y = y enemies.append(new_enemy) return enemies else: print 'not enough locations provided to spawn %i mobs' % (n)
def init(pause): global player_obj, player_icon, enemy_icon, enemy_obj, bullet_obj, pie1_obj, pie2_obj, pie3_obj, score enemy_icon = pygame.image.load("Kera.png") pie_icon = pygame.image.load("Pie.png") #PLAYER player_obj = player.Player(100, 150) #ENEMY enemy_obj = enemy.Enemy(300, 250, enemy_icon) #OBJECTS pie1_obj = pie.Pie1(100, 250, pie_icon) pie2_obj = pie.Pie1(1250, 200, pie_icon) pie3_obj = pie.Pie1(100, 300, pie_icon) gamemusic = pygame.mixer.music.load("gamesound.wav") pygame.mixer.music.play(-1) #Mute/unmute if pause: pygame.mixer.music.pause() else: pygame.mixer.music.unpause() pygame.mouse.set_visible(True)
def newMap(self): #min 3, max 25 self.currentLevel = mazeGen.generate(12) self.currentView = [] for a in self.currentLevel: self.currentView.append([ 1, ] * len(self.currentLevel[0])) #fog off #self.currentView.append([0,]*len(self.currentLevel[0])) #fog on self.enemies = [] eX = 0 eY = 0 for block in self.currentLevel: for cell in block: if cell == 99: end = (eX, eY) if cell == 12: self.p = dp.Player(eX, eY) self.p.gc = self if cell == 4: #add enemy-spawn logic enemyChoice = random.choice( [901, 901, 901, 902, 902, 903, 903, 904]) self.enemies.append(el.Enemy(eX, eY, enemyChoice, self)) self.currentLevel[eY][eX] = enemyChoice eX += 1 eX = 0 eY += 1
def test_isOffScreen(self, mock_pygame): board = [[0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0], [0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0], [0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0], [0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0], [0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0], [0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0], [0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0], [0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 3]] tower_classes = (tower.OrangeTower, tower.RedTower, tower.PurpleTower, tower.GreenTower) tower_class = random.choice(tower_classes) dummy_tower = tower_class(0, 0, [[]], 40) enemy_colours = ["white", "pink", "yellow", "cyan", "maroon"] colour = random.choice(enemy_colours) dummy_enemy = enemy.Enemy(15, 15, 40, (0, 1), [[]], 5, colour) shot = Shot(dummy_tower, dummy_enemy, board, 40) nshot = copy.deepcopy(shot) index = random.randint(0, 1) value = random.randint(0, 100) nshot.location[index] = -value self.assertEqual(nshot.isOffScreen(), True) self.assertEqual(shot.isOffScreen(), False)
def spawnEnemies(self, task): if len(self.enemies) < 20: # default state is stay self.numbEnemies += 1 newEnemy = enemy.Enemy(1, self.numbEnemies, self.player) self.enemies.append(newEnemy) task.delayTime += 1 return task.again
def enemyGenerator(level, ap, hp, accuracy): """The function that generate the enemies""" cEnemy = enemy.Enemy() cEnemy.ap = ap cEnemy.hp = hp cEnemy.accuracy = accuracy cEnemy.alive is True return cEnemy
def __load_enemies(self): """Create enemies for current game level""" enemies = pygame.sprite.Group() for y in self.enemy_y_range: for x in self.enemy_x_range: enemy_bot = enemy.Enemy((x, y), self.game_level, enemies) self.__set_enemy_stats(enemies) return enemies
def addEnemy(self): if len(self.enemies) < ENEMY_MAX: spawn_y = WINDOW_H / 2 * random.random() + ENEMY_H if random.random() > 0.5: spawn_y *= -1 new_enemy = enemy.Enemy(self.ENEMY_ID) new_enemy.update(WINDOW_W - ENEMY_W, spawn_y, 1) self.enemies.append(new_enemy)
def __init__(self, all_sprites, hero, game_area): # forest floor self.tileset = pygame.image.load( "Assets/Sprites/Ground/MergamothFloor.png").convert() # forest flora self.bonzai_tree1 = flora.Flora("Bonzai") all_sprites.add(self.bonzai_tree1) all_sprites.add(hero) all_sprites.add(enemy.Enemy(hero, game_area, "Mergamoth"))
def __init__(self): if Interface.__first: Interface.__first = False pygame.init() self.window = pygame.display.set_mode(Interface.__window) self.player_plane = None # self.bg_img = pygame.image.load(Interface.bg_img) self.logo_img = pygame.image.load(Interface.icon_img) self.map = map.Map() self.enemy = [enemy.Enemy() for i in range(6)]
def test_setSpeedFactor(self): enemy_colours = ["white", "pink", "yellow", "cyan", "maroon"] colour = random.choice(enemy_colours) dummy_enemy = enemy.Enemy(15, 15, 40, (0, 1), [[]], 5, colour) if colour == "pink" or colour == "yellow": assert (dummy_enemy.speedFactor == 8.0 / 5) elif colour == "cyan" or colour == "maroon": assert (dummy_enemy.speedFactor == 2.0) else: assert (dummy_enemy.speedFactor == 1)
def __init__(self, all_sprites, hero, game_area): # forest floor self.tileset = pygame.image.load( "Assets/Sprites/Ground/SwampFloor.png").convert() for x in range(5): all_sprites.add(flora.Flora("Tree2")) # forest enemies for x in range(20): all_sprites.add(enemy.Enemy(hero, game_area, "Skeletor")) all_sprites.add(enemy.Enemy(hero, game_area, "Cacodemon")) all_sprites.add(hero) all_sprites.add(item.Item(game_area, 150, 150)) all_sprites.add(portal.Portal(game_area, 350, 350)) # forest flora self.bonzai_tree1 = flora.Flora("Bonzai") all_sprites.add(self.bonzai_tree1) all_sprites.add(hero)
def spawnEnemy(self, slot): e = enemy.Enemy() if self.easter: e.initialize(self, random.randint(0, self.x - 1), random.randint(300, 900), random.randint(90, 91)) else: e.initialize( self, random.randint(0, self.x - 1), random.randint(300, 900), random.randint(0, globalVars.appMain.getNumScreams() - 1)) self.enemies[slot] = e
def update(self): """ 情報の更新と敵の出現管理 """ if self.game_state == GAME_MODE['PLAY']: # 0からenemy_probまでの乱数を出して、0が出たらエネミー出現 # つまりこのクラスの変数enemy_probを大きくすると…… if not random.randrange(self.enemy_prob): enemy.Enemy() self.all_sprite.update() self.collision_detection()
def updateMap(): global count ,plat ,potal if count == 4: endGame() gfw.world.clear_at(gfw.layer.potal) count += 1 gfw.world.clear_at(gfw.layer.plat) for x, y in STAGE_LIST[count]: plat = platforms.Platform(count, x, y) gfw.world.add(gfw.layer.plat, plat) for x in PLNAT_MONSTER_LIST[count]: en = enemy.Enemy((x,400),1) gfw.world.add(gfw.layer.en, en) for x in TREE_MONSTER_LIST[count]: en = enemy.Enemy((x,400),2) gfw.world.add(gfw.layer.en, en) for x in BOMB_MONSTER_LIST[count]: en = enemy.Enemy((x,1000),3) gfw.world.add(gfw.layer.en, en)
def gen_enemies(num_icons, start_y=120, batch=None): blocks = [] for i in range(num_icons): try: y = blocks[-1].y + 100 + random.randint(90, 150) except IndexError: y = start_y + random.randint(100, 350) xl = random.sample(set([200, 300]), 1) new_sprite = enemy.Enemy(x=xl[0], y=y, batch=batch) # new_sprite.scale = 0.2 blocks.append(new_sprite) return blocks
def test_shot(self, mock_pygame): enemy_colours = ["white", "pink", "yellow", "cyan", "maroon"] colour = random.choice(enemy_colours) dummy_enemy = enemy.Enemy(0, 0, 40, (0, 0), [[]], 5, colour) dummy_tower = tower.OrangeTower(0, 0, [[]], 40) self.assertEqual(0, len(dummy_tower.shots)) r = random.randint(0, 10) print(r) print(colour) for i in range(r): dummy_tower.fireShot(dummy_enemy) self.assertEqual(r, len(dummy_tower.shots))