def __init__(self, screen_width, screen_height, history_path=None, train_mode=False, prefix=None, tries=5): gc.disable() self.game_state = GameState.Start self.screen_width = screen_width self.screen_height = screen_height self.train_mode = train_mode self.battle_field_size = (1000, 1000) self.radiant_bots = 0 self.dire_bots = 0 self.is_player1_play = 1 self.is_player2_play = 1 self.radiant = self.radiant_bots + self.is_player1_play self.dire = self.dire_bots + self.is_player2_play if history_path is None: now_time = datetime.datetime.now() self.history_path = now_time.strftime("%Y_%m_%d_%H_%M_%S")+'.txt' #self.history_path = 'delete_me_pls.txt' if prefix: self.history_path = '{}_{}'.format(prefix, self.history_path) self.clear_file(self.history_path) self.is_it_move_from_history = False else: self.history_path = history_path self.is_it_move_from_history = True # self.fps_display = pyglet.clock.ClockDisplay() self.playtime = 0 self.framerate = 60 self.configuration = {ObjectType.FieldSize: [], ObjectType.Bot1: [], ObjectType.Player1: [], ObjectType.Bot2: [], ObjectType.Player2: []} self.configuration[ObjectType.FieldSize].append(self.battle_field_size) self.prepare_config(self.radiant_bots, self.dire_bots, self.is_player1_play, self.is_player2_play, self.battle_field_size[0], self.battle_field_size[1]) self.messenger = Messenger() if self.train_mode: self.ai_controls = AIcontrols(self.configuration, messenger=self.messenger, train_mode=True) self.Objects = Objects(self.configuration, self.radiant, self.dire, history_path=self.history_path, messenger=self.messenger, ai_controls=self.ai_controls, tries=tries) else: self.ai_controls = AIcontrols(self.configuration, messenger=self.messenger) self.Objects = Objects(self.configuration, self.radiant, self.dire, history_path=self.history_path, messenger=self.messenger) self.gui_controls = GUIcontrols(self.messenger) self.renderer = Renderer(self.screen_width, self.screen_height, self.battle_field_size) self.game_window = None self.objects = None self.history_list = [] self.functions = {messages.Game.Quit: self.quit, messages.Game.UpdateObjects: self.update_objects, messages.Game.Pause: self.game_pause_simulation, messages.Game.Polar_grid: self.show_polar_grid, messages.Game.ActiveGame: self.game_unpaused} self.run_game()
def __init__(self): with open(self.glyph_pickle_file, 'rb') as glyph_file: glyphs = pickle.load(glyph_file) self.glyphs = glyphs self.monsters = Monsters(glyphs) self.objects = Objects(glyphs) self.rooms = RoomTiles(glyphs)
def initialization(self, window): """ Initialise new objects when call """ self.labyrinth = Labyrinth() self.mac_gyver = Player( MAC_GYVER_IMAGE, FLOOR_IMAGE, self.labyrinth, self.window ) self.mac_gyver.position = [0, 0] self.objects = Objects( SYRINGE_IMAGE, ETHER_IMAGE, NEEDLE_IMAGE, self.labyrinth, self.window ) # Labyrinth self.labyrinth.labyrinth_construction() self.labyrinth.display_level(window) # Player self.mac_gyver.blit(self.mac_gyver.position) # Objects self.objects.generate_random_position() self.objects.display_objects() self.objects.objects_collected = 0 self.run = True self.response = None
def create_object(group, h_number, v_number, screen): obj = Objects(screen) space_x = obj.rect.width * h_number space_y = obj.rect.height * v_number obj.rect.x = space_x obj.rect.y = 30 + space_y group.append(obj)
def super_categories(self): """ EXAMPLES:: sage: SimplicialComplexes().super_categories() [Category of objects] """ return [Objects()] # anything better?
def super_categories(self): """ EXAMPLES:: sage: ChainComplexes(Integers(9)).super_categories() [Category of objects] """ return [Objects()] # anything better?
def super_categories(self): """ EXAMPLES:: sage: SetsWithPartialMaps().super_categories() [Category of objects] """ return [Objects()]
def super_categories(self): """ EXAMPLES:: sage: Sequences(ZZ).super_categories() [Category of objects] """ from objects import Objects return [Objects()] # Almost FiniteEnumeratedSets() except for possible repetitions
def backup(): ''' Emby backup. ''' from helper.utils import delete_folder, copytree path = settings('backupPath') folder_name = "Kodi%s.%s" % (xbmc.getInfoLabel('System.BuildVersion')[:2], xbmc.getInfoLabel('System.Date(dd-mm-yy)')) folder_name = dialog("input", heading=_(33089), defaultt=folder_name) if not folder_name: return backup = os.path.join(path, folder_name) if xbmcvfs.exists(backup + '/'): if not dialog("yesno", heading="{emby}", line1=_(33090)): return backup() delete_folder(backup) addon_data = xbmc.translatePath("special://profile/addon_data/plugin.video.emby").decode('utf-8') destination_data = os.path.join(backup, "addon_data", "plugin.video.emby") destination_databases = os.path.join(backup, "Database") if not xbmcvfs.mkdirs(path) or not xbmcvfs.mkdirs(destination_databases): LOG.info("Unable to create all directories") dialog("notification", heading="{emby}", icon="{emby}", message=_(33165), sound=False) return copytree(addon_data, destination_data) databases = Objects().objects db = xbmc.translatePath(databases['emby']).decode('utf-8') xbmcvfs.copy(db, os.path.join(destination_databases, db.rsplit('\\', 1)[1])) LOG.info("copied emby.db") db = xbmc.translatePath(databases['video']).decode('utf-8') filename = db.rsplit('\\', 1)[1] xbmcvfs.copy(db, os.path.join(destination_databases, filename)) LOG.info("copied %s", filename) if settings('enableMusic.bool'): db = xbmc.translatePath(databases['music']).decode('utf-8') filename = db.rsplit('\\', 1)[1] xbmcvfs.copy(db, os.path.join(destination_databases, filename)) LOG.info("copied %s", filename) LOG.info("backup completed") dialog("ok", heading="{emby}", line1="%s %s" % (_(33091), backup))
def super_categories(self): """ EXAMPLES:: sage: Elements(ZZ).super_categories() [Category of objects] TODO: check that this is what we want. """ return [Objects()]
def get_fanart(item_id, path, server_id=None): ''' Get extra fanart for listitems. This is called by skinhelper. Images are stored locally, due to the Kodi caching system. ''' if not item_id and 'plugin.video.emby' in path: item_id = path.split('/')[-2] if not item_id: return LOG.info("[ extra fanart ] %s", item_id) objects = Objects() list_li = [] directory = xbmc.translatePath("special://thumbnails/emby/%s/" % item_id).decode('utf-8') server = TheVoid('GetServerAddress', {'ServerId': server_id}).get() if not xbmcvfs.exists(directory): xbmcvfs.mkdirs(directory) item = TheVoid('GetItem', {'ServerId': server_id, 'Id': item_id}).get() obj = objects.map(item, 'Artwork') backdrops = api.API(item, server).get_all_artwork(obj) tags = obj['BackdropTags'] for index, backdrop in enumerate(backdrops): tag = tags[index] fanart = os.path.join(directory, "fanart%s.jpg" % tag) li = xbmcgui.ListItem(tag, path=fanart) xbmcvfs.copy(backdrop, fanart) list_li.append((fanart, li, False)) else: LOG.debug("cached backdrop found") dirs, files = xbmcvfs.listdir(directory) for file in files: fanart = os.path.join(directory, file.decode('utf-8')) li = xbmcgui.ListItem(file, path=fanart) list_li.append((fanart, li, False)) xbmcplugin.addDirectoryItems(int(sys.argv[1]), list_li, len(list_li)) xbmcplugin.endOfDirectory(int(sys.argv[1]))
def get_fanart(item_id, path, server_id=None, api_client=None): ''' Get extra fanart for listitems. This is called by skinhelper. Images are stored locally, due to the Kodi caching system. ''' if not item_id and 'plugin.video.jellyfin' in path: item_id = path.split('/')[-2] if not item_id: return LOG.info("[ extra fanart ] %s", item_id) objects = Objects() list_li = [] directory = xbmc.translatePath("special://thumbnails/jellyfin/%s/" % item_id) if not xbmcvfs.exists(directory): xbmcvfs.mkdirs(directory) item = api_client.get_item(item_id) obj = objects.map(item, 'Artwork') backdrops = api.API(item).get_all_artwork(obj) tags = obj['BackdropTags'] for index, backdrop in enumerate(backdrops): tag = tags[index] fanart = os.path.join(directory, "fanart%s.jpg" % tag) li = xbmcgui.ListItem(tag, path=fanart) xbmcvfs.copy(backdrop, fanart) list_li.append((fanart, li, False)) else: LOG.debug("cached backdrop found") dirs, files = xbmcvfs.listdir(directory) for file in files: fanart = os.path.join(directory, file) li = xbmcgui.ListItem(file, path=fanart) list_li.append((fanart, li, False)) xbmcplugin.addDirectoryItems(PROCESS_HANDLE, list_li, len(list_li)) xbmcplugin.endOfDirectory(PROCESS_HANDLE)
def __init__ (self, mainMenuSound, soundMouse, soundSpace, soundGun, soundClick, takeSomething, soundCoin, soundSpaceShip): self.spaceShip = SpaceShip(width/2, height/2+150, 150, 150, 5, soundGun, takeSomething, soundCoin) self.enemy = Enemy(random(0+75/2, width-75/2), -300, 75, 75, 3) self.spaceShip.setEnemy(self.enemy) self.objects = Objects(soundGun) self.spaceShip.setSecondWeapon(self.objects.secondWeapon) self.spaceShip.setSecondWeaponTimer(self.objects.secondWeaponTimer) self.dropedObjects = DropedObjects(random(0+25, width-25), -2400, 50, 50, 2, random(0+25, width-25)) self.spaceShip.setDropedSecondWeapon(self.dropedObjects.dropedSecondWeapon) self.stars = Stars() self.gameState = False self.buttonToStartGame = StartGame(width/2, height/2, 100, 50) self.mainMenuSound = mainMenuSound self.mainMenuSound.loop() self.soundMouse = soundMouse self.soundSpace = soundSpace self.soundClick = soundClick self.soundSpaceShip = soundSpaceShip
def main(): screen = pygame.display.set_mode((15 * sp_size, 15 * sp_size)) Lab = Labyrinth("mappy.txt", sp_size) Lab.convert_file_txt() Lab.get_pos() objects = Objects(Lab) objects.random() macgyver = MacGyver("mappy.txt", sp_size, objects, Lab) guardian = Guardian(sp_size) pygame.display.flip() current_game = True while current_game: for event in pygame.event.get(): if event.type == pygame.QUIT: sys.exit() elif event.type == pygame.KEYDOWN: if event.key == pygame.K_RIGHT: macgyver.move_right() elif event.key == pygame.K_LEFT: macgyver.move_left() elif event.key == pygame.K_UP: macgyver.move_up() elif event.key == pygame.K_DOWN: macgyver.move_down() macgyver.get_objects() Lab.get_pos() arbitror(macgyver, guardian) objects.display_objects() screen.blit(guardian.image, (guardian.rect.x, guardian.rect.y)) screen.blit(macgyver.image, (macgyver.rect.x, macgyver.rect.y)) macgyver.score_count() pygame.display.flip()
#game screen generation pygame.display.set_caption('Surrender') size = width, height = 1280, 720 screen = pygame.display.set_mode((size)) icon = pygame.image.load('assets/icon.png') pygame.display.set_icon(icon) #mouse pygame.mouse.set_cursor(*pygame.cursors.diamond) #Player creation player = Player() #Map creation maps = Map() objects_light = Objects(0) objects_dark = Objects(1) hud = HudText() hud.render_text("Press [SPACE].", "", "") #Sound ost = pygame.mixer.Sound('assets/ost.ogg') ost.set_volume(0.2) ost.play(loops=-1, maxtime=0, fade_ms=0) running = True def collide(character, obj): if obj.contains(character) == 1:
def on_init(self): self.game_objects = Objects(self.width, self.height)
def _sql(self, file): ''' Get the database path based on the file objects/obj_map.json Compatible check, in the event multiple db version are supported with the same Kodi version. Load video, music, texture databases from the log file. Will only run once per service thread. Running database version lines ''' from objects import Objects databases = Objects().objects if file not in ('video', 'music', 'texture') or databases.get( 'database_set%s' % file): return self._get_database(databases[file], True) folder = xbmc.translatePath("special://database/").decode('utf-8') dirs, files = xbmcvfs.listdir(folder) dbs = {'Textures': "texture", 'MyMusic': "music", 'MyVideos': "video"} for db in dbs: count = 0 filename = None for name in files: if (name.startswith(db) and not name.endswith('-wal') and not name.endswith('-shm') and not name.endswith('db-journal')): count += 1 filename = name if count == 1: key = dbs[db] databases[key] = os.path.join( folder, filename.decode('utf-8')).decode('utf-8') databases['database_set%s' % key] = True continue break else: return databases[file] with open( xbmc.translatePath('special://logpath/kodi.log').decode( 'utf-8'), 'r') as log: found_lines = len(dbs) for line in log: if 'Running database version' in line: filename = line.rsplit('version ', 1)[1].strip() filename = "%s.db" % filename for database in dbs: if database in line: key = dbs[database] databases[key] = os.path.join( folder, filename.decode('utf-8')).decode('utf-8') databases['database_set%s' % key] = True found_lines -= 1 break elif not found_lines: break return databases[file]
def run_game(): pygame.init() set = Settings() screen = pygame.display.set_mode((set.width, set.height)) images = ["rsc/objekt01.png", "rsc/objekt02.png", "rsc/objekt03.png", "rsc/objekt04.png", "rsc/objekt05.png"] objects = [] for i in range(0, 5): object = Objects(set, screen, images[i]) objects.append(object) hintergrund = pygame.image.load("rsc/hintergrund.png") rect_hintergrund = hintergrund.get_rect() rect_hintergrund.x = 0 rect_hintergrund.y = 0 teppich = pygame.image.load("rsc/teppich.png") rect_teppich = teppich.get_rect() rect_teppich.x = 100 rect_teppich.y = 60 rucksack = pygame.image.load("rsc/rucksack.png") rect_rucksack = rucksack.get_rect() rect_rucksack.x = rect_teppich.width + 200 rect_rucksack.y = 60 button01 = pygame.image.load("rsc/button01.png") rect_button01 = button01.get_rect() rect_button01.x = set.width - rect_button01.width - 100 rect_button01.y = set.height - rect_button01.height - 60 button02 = pygame.image.load("rsc/button02.png") rect_button02 = button02.get_rect() rect_button02.x = set.width - rect_button02.width - 100 rect_button02.y = set.height - rect_button02.height - 60 def update_screen(screen): if not set.game_over: screen.blit(hintergrund, rect_hintergrund) screen.blit(button01, rect_button01) screen.blit(teppich, rect_teppich) screen.blit(rucksack, rect_rucksack) for object in objects: object.blit() else: screen.blit(hintergrund, rect_hintergrund) screen.blit(button02, rect_button02) def check_mouse_down(mouse): for event in pygame.event.get(): if event.type == pygame.MOUSEBUTTONDOWN: set.mouse_down = True for object in objects: if object.rect_image.collidepoint(mouse): return objects.index(object) def check_mouse_up(): for event in pygame.event.get(): if event.type == pygame.MOUSEBUTTONUP: set.mouse_down = False def check_collide_object(mouse, current_object): for object in objects: if object.rect_image.collidepoint(mouse): if set.mouse_down: current = objects[current_object] current.rect_image.x = round(mouse[0] - object.rect_image.width / 2) current.rect_image.y = round(mouse[1] - object.rect_image.height / 2) if rect_button02.collidepoint(mouse) and set.game_over == True: sys.exit() def check_object_in_backpack(): if set.mouse_down == False: for object in objects: if object.rect_image.colliderect(rect_rucksack): set.items += 1 object.rect_image.x = -100 object.rect_image.y = -100 def check_game_over(): if set.items >= 5: set.game_over = True while True: if set.mouse_down == False: current_object = check_mouse_down(pygame.mouse.get_pos()) else: check_collide_object(pygame.mouse.get_pos(), current_object) check_mouse_up() check_object_in_backpack() check_game_over() update_screen(screen) pygame.display.flip()
def main(): """ Main function """ game_activated = True while game_activated: """ Main loop containing 'Welcome loop', ' Instruction loop' and 'Game loop'. Initialization of all the game elements """ pygame.time.Clock().tick(30) # SCREEN LOADING level = Level() pygame.init() screen = pygame.display.set_mode( (SPRITES * SPRITE_SIZE, SPRITES * SPRITE_SIZE + 50)) icon = pygame.image.load(IMAGE_MCGYVER).convert() pygame.display.set_icon(icon) pygame.display.set_caption(TITLE_WELCOME) # MUSIC LOADING sound_mac_theme = pygame.mixer.Sound(MAC_THEME) music_win = pygame.mixer.Sound(MAC_WIN) # MAP IS CREATED background = pygame.image.load(IMAGE_BACKGROUND).convert() level.map_generator() # CHARACTERS ARE CREATED mcgyver = Character(0, 1, IMAGE_MCGYVER, level) guardian = Character(14, 13, IMAGE_GUARDIAN, level) # OBJECTS ARE CREATED needle = Objects('N', IMAGE_NEEDLE, level) ether = Objects('E', IMAGE_ETHER, level) tube = Objects('T', IMAGE_TUBE, level) # WELCOME PAGE LOADING AND SHOWING welcome = pygame.image.load(WELCOME_MAC).convert() # INSTRUCTION PAGE LOADING instructions = pygame.image.load(IMAGE_INSTRUCTIONS).convert() # INVENTORY AT THE BOTTOM OF THE SCREEN LOADING inventory = pygame.image.load(IMAGE_INVENTORY).convert() pygame.display.flip() continue_game = True continue_title = True continue_instructions = True # WELCOME LOOP while continue_title: sound_mac_theme.play() screen.blit(welcome, (0, 0)) if level.player_decision(): continue_title = False pygame.display.flip() # INSTRUCTIONS LOOP while continue_instructions: sound_mac_theme.stop() screen.blit(instructions, (0, 0)) screen.blit(inventory, (0, 600)) if level.player_decision(): continue_instructions = False pygame.display.flip() # GAME LOOP while continue_game: # Displaying map and refreshing screen screen.blit(background, (0, 0)) level.map_draw(screen) screen.blit( mcgyver.visual, (mcgyver.pos_x * SPRITE_SIZE, mcgyver.pos_y * SPRITE_SIZE)) screen.blit( guardian.visual, (guardian.pos_x * SPRITE_SIZE, guardian.pos_y * SPRITE_SIZE)) # Displaying objects images for each objects position ether.displaying_objects(level, screen) tube.displaying_objects(level, screen) needle.displaying_objects(level, screen) # Games actions mcgyver.is_moving() if mcgyver.is_moving() is False: continue_game = False # Inventory displaying ether.display_in_inventory(mcgyver, screen) tube.display_in_inventory(mcgyver, screen) needle.display_in_inventory(mcgyver, screen) # MacGyver wins or loses mcgyver.wins_or_not(screen, music_win, level) if mcgyver.wins_or_not(screen, music_win, level) is False: continue_game = False pygame.display.flip()
def dispose_objects(screen, group, score): obj = Objects(screen) elements_in_x = space_available_x(screen, obj) for v_number in range(score.level): for h_number in range(elements_in_x + 1): create_object(group, h_number, v_number, screen)
def __init__(self, host): self.host = host self.objects = Objects(host)
('Spell Sounds Starter Pack - p0ss', 'https://creativecommons.org/licenses/by-sa/3.0/legalcode', 'http://www.gnu.org/licenses/gpl-3.0.html', 'http://www.gnu.org/licenses/old-licenses/gpl-2.0.html', 'https://opengameart.org/content/spell-sounds-starter-pack', 'Foram feitas modificações neste trabalho para o uso neste projeto', '', 'Another Egyptian Theme - Spring', 'https://creativecommons.org/licenses/by/4.0/legalcode', 'https://creativecommons.org/licenses/by/3.0/legalcode', 'https://creativecommons.org/licenses/by-sa/4.0/legalcode', 'https://creativecommons.org/licenses/by-sa/3.0/legalcode', 'https://static.opengameart.org/OGA-BY-3.0.txt', 'https://opengameart.org/content/another-egyptian-theme') ] pilar = Objects(4000, 1450, pilar_img.get_width(), pilar_img.get_height(), pilar_img) gate = Objects(3263, 1300, gate_img.get_width(), gate_img.get_height(), gate_img) gate_down = Objects(3648, 2500, gate_down_img.get_width(), gate_down_img.get_height(), gate_down_img) gate_side = Objects(2750, 1728, gate_side_img.get_width(), gate_side_img.get_height(), gate_side_img) armasAfricanas = Objects(4200, 1720, armasAfricanas_img.get_width(), armasAfricanas_img.get_height(), armasAfricanas_img) mascaraAfricana = Objects(4250, 2100, mascaraAfricana_img.get_width(), mascaraAfricana_img.get_height(), mascaraAfricana_img) elmoRomano = Objects(3800, 1770, elmoRomano_img.get_width(), elmoRomano_img.get_height(), elmoRomano_img) estatuaAfricana = Objects(3800, 2100, estatuaAfricana_img.get_width(),