def apply(self, to, second): if to == second: return delta = helper.try_normalize(second.pos - to.pos) pos1 = to.pos + delta * (to.radius + 15) pos2 = second.pos - delta * (second.radius + 15) p1 = portal.Portal(to.scene, pos1, second, to.owning_civ) p2 = portal.Portal(to.scene, pos2, to, to.owning_civ) p1.other_portal = p2 p2.other_portal = p1 to.scene.game_group.add(p1) to.scene.game_group.add(p2) return super().apply(to)
def makeBoard(self): # board should be [x][y] self.tiles = [[tile.Tile("empty") for y in range(self.height)] for x in range(self.width)] # populate static objects: walls, lava, and exit if "walls" in self.levelData: for wall in self.levelData["walls"]: x = wall["position"][0] y = wall["position"][1] self.tiles[x][y].type = "wall" if "deathTiles" in self.levelData: for deathTile in self.levelData["deathTiles"]: x = deathTile["position"][0] y = deathTile["position"][1] self.tiles[x][y].type = "lava" exitX = self.levelData["exit"]["position"][0] exitY = self.levelData["exit"]["position"][1] self.tiles[exitX][exitY].type = "exit" # Need to figure out how wormholes will be stored if "wormholes" in self.levelData: for wormhole in self.levelData["wormholes"]: entranceX = wormhole["positionEntrance"][0] entranceY = wormhole["positionEntrance"][1] exitX = wormhole["positionExit"][0] exitY = wormhole["positionExit"][1] entranceDirection = wormhole["directionEntrance"] exitDirection = wormhole["directionExit"] self.tiles[exitX][exitY] = portalExit.PortalExit(exitX, exitY, exitDirection) self.tiles[entranceX][entranceY] = portal.Portal(entranceDirection, self.tiles[exitX][exitY]) self.wormholes.append(self.tiles[entranceX][entranceY]) # populate keys if "keys" in self.levelData: for keyObj in self.levelData["keys"]: x = keyObj["startingPosition"][0] y = keyObj["startingPosition"][1] xmin = keyObj["positionBoundsX"][0] xmax = keyObj["positionBoundsX"][1] ymin = keyObj["positionBoundsY"][0] ymax = keyObj["positionBoundsY"][1] self.tiles[x][y].key = True self.keys.append(key.Key(x, y, xmin, xmax, ymin, ymax))
def crear_portal(self): self.list_de_casillas_con_pared_rompible = [] for i in range(0, len(self.casillas)): consulta_a_casilla = self.casillas[ i].get_id_casilla_si_esta_desocupada() if consulta_a_casilla != None: self.list_de_casillas_con_pared_rompible.append( consulta_a_casilla) randomizador = random.randint( 0, len(self.list_de_casillas_con_pared_rompible) - 1) self.portal.append( portal.Portal( self.list_de_casillas_con_pared_rompible[randomizador]))
async def main1(loop): logging.info("{}".format(loop)) # test_tcp_accept1 = test_tcp_accept.TestTCPAccept(loop) # test_tcp_accept1.run() # test = test_session.Test(loop) # await test.run() # test_tcp_connect2 = test_tcp_connect.TestTCPConnect(loop) # test_tcp_connect2.run() _portal = portal.Portal(loop) await _portal.run() await asyncio.sleep(2) loop.stop()
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 setUp(self): self.p = portal.Portal() self.inf = infellowship.InFellowship() self.wl = weblink.Weblink()
#not used or properly tested, may not actually work import portal global main_menu_functions global macro_menu_functions global levels p = portal.Portal(start_serial=False) def resoDeployer(): reso = 0 level = 0 print("Enter selection, or -1 to return to main menu") while reso not in levels: reso = input("Deploy to which resonator slot? ") if reso == '-1': break if not (1 <= reso <= 8): print("Invalid selection") reso = 0 while level not in levels: level = input("Enter resonator level to deploy: ") if level == '-1': break if not (1 <= level <= 8): print("Invalid level") level = 0 p.deploy_reso(reso, level, 'enl') o = ("Level {} reso deployed to slot {}").format(level, reso) print(o)
def handle_input(self): for e in pygame.event.get(): if e.type == pygame.QUIT: exit() elif e.type == pygame.KEYDOWN: if e.key == K_f: pygame.display.toggle_fullscreen() if e.key == K_e: self.mode_edit = not self.mode_edit elif self.mode_edit: if e.key == K_a: self.pan_left = True elif e.key == K_d: self.pan_right = True elif e.key == K_w: self.pan_up = True elif e.key == K_s: self.pan_down = True elif e.key == K_COMMA : self.dec_snap_radius= True elif e.key == K_PERIOD : self.inc_snap_radius = True elif e.key == K_k : self.level.save_level(self.level_path) elif e.key == K_x : self.del_mode=not self.del_mode elif e.key == K_RETURN and self.mode_gvol: self.mode_grav_vec = not self.mode_grav_vec self.pos_start=None self.pos_end=None elif e.key == K_g : if self.mode_gvol:#stopping gravity volume self.grav_set=True else: #starting gravity volume self.mode_grav_vec=False self.grav_set=False self.poly_verts=[] self.grav_vec=None self.mode_gvol = not self.mode_gvol elif e.key == K_m and self.del_mode and len(self.level.emitters)>0: del self.level.emitters[-1] elif e.key == K_LEFT: self.move_left = True self.swap_keys() elif e.key == K_RIGHT: self.move_right = True self.swap_keys() elif e.key == K_SPACE and self.on_ground(): self.jump = True self.jump_time = JUMP_TIME self.player.jump() elif e.type == pygame.KEYUP: if self.mode_edit: if e.key == K_a: self.pan_left = False elif e.key == K_d: self.pan_right = False elif e.key == K_w: self.pan_up = False elif e.key == K_s: self.pan_down = False elif e.key == K_COMMA : self.dec_snap_radius= False elif e.key == K_PERIOD : self.inc_snap_radius = False elif e.key == K_LEFT: self.move_left = False elif e.key == K_RIGHT: self.move_right = False elif e.key == K_SPACE: self.jump = False elif e.type == pygame.MOUSEBUTTONDOWN and self.mode_edit: if e.button == 1: self.mode_grav_poly=True pos_snap=self.level.check_snap(self.screen2world(e.pos),self.snap_radius) if pos_snap is not None: pos=pos_snap else: pos=self.screen2world(e.pos) self.pos_start=pos elif e.button == 3: pos = self.screen2world(e.pos) self.level.emitters.append(particles.Emitter(pos)) elif e.button == 2: pos = self.screen2world(e.pos) if self.level.goal != None: del self.shape_map[self.level.goal.shape] self.space.remove_static(self.level.goal.shape) self.level.goal = portal.Portal(pos) self.shape_map[self.level.goal.shape] = self.level.goal self.space.add_static(self.level.goal.shape) elif e.button == 4: pos = self.screen2world(e.pos) cn = coin.Coin(pos) self.level.coins.append(cn) self.shape_map[cn.shape] = cn self.space.add_static(cn.shape) elif e.type == pygame.MOUSEBUTTONUP and self.mode_edit: if e.button == 1: pos_snap=self.level.check_snap(self.screen2world(e.pos),self.snap_radius) if pos_snap is not None: pos=pos_snap else: pos=self.screen2world(e.pos) self.pos_end=pos elif e.type == JOYHATMOTION: x, y = e.value if x == 0: self.move_left = False self.move_right = False elif x == 1: self.move_right = True self.swap_keys() elif x == -1: self.move_left = True self.swap_keys() elif e.type == JOYAXISMOTION: if e.axis == 0: if e.value < DEADZONE and e.value > -DEADZONE: self.move_left = False self.move_right = False elif e.value >= DEADZONE: self.move_right = True self.swap_keys() elif e.value <= -DEADZONE: self.move_left = True self.swap_keys() elif e.type == JOYBUTTONDOWN: if e.button == 1 and self.on_ground(): self.jump = True self.jump_time = JUMP_TIME self.player.jump() elif e.type == JOYBUTTONUP: if e.button == 1: self.jump = False if self.mode_edit: self.pos_mouse=pygame.mouse.get_pos() if self.pos_mouse is not None: self.pos_mouse=self.screen2world(self.pos_mouse) self.mouse_body.position=self.pos_mouse