def make_next_screen(self, direction, tux_x, tux_y): print(self.current_map) x = self.current_map["x"] y = self.current_map["y"] self.grids[y][x] = maps.save(app=self.app, in_memory=True) if direction == "Up": y -= 1 elif direction == "Down": y += 1 elif direction == "Right": x += 1 elif direction == "Left": x -= 1 self.current_map["y"] = y self.current_map["x"] = x m = self.grids[y][x] if "grid" in m: maps.load(app=self.app, from_memory=m) else: new_grid = self.generate_screen(direction) self.grid = new_grid.copy() self.grids[y][x]["grid"] = new_grid.copy() self.app.add_sprites(tux_x=tux_x, tux_y=tux_y, monsters=[], fishes=[])
def edit_existing_level( screen ): rpm = rpgmenu.Menu( screen , x=screen.get_width()/2 - 200 , y=screen.get_height()/2 - 130, w=400, h=300 ) rpm.add_files( "level/*" ) myredraw = MenuRedrawer( "Select Backdrop Image" , screen ) rpm.predraw = myredraw pathname = rpm.query() if pathname: dname,fname = os.path.split( pathname ) levelmap = maps.load( fname ) edit_map( levelmap , screen )
from os import system from sys import argv as args import maps def nmap(ips, outfile): iplist = "" for x in ips: iplist += " " + x system("nmap -O" + iplist + " > " + outfile) if (args[1] == "--help"): print( "Usage:\nnmapper.py type start end\nExample nmapper.py 192.168.10 1 255" ) else: t = args[1] s = args[2] e = args[3] ips = [] for i in range(int(s), int(e)): ips.append(t + "." + str(i)) nmap(ips, "maps.txt") print() for m in maps.load('maps.txt'): m.printDetails() print('\n')
def build_path(s): path = [] path.append((ToX, ToZ)) while s != None: path.append(get_pos(s[0])) s = s[1] path.reverse() out = [] out.append(path[0]) i = 0 j = len(path) - 1 while i < len(path) - 1: if j <= (i + 1) or maps.can_direct_reach(path[i][0], path[i][1], path[j][0], path[j][1]): j = max(j, i + 1) out.append(path[j]) i = j j = len(path) - 1 continue j -= 1 return out if __name__ == "__main__": maps.load("..\\..\\maps") print path_find(-2, 0, -8, 2)
def playScience(): global resolution, windowSize, inventoryBarHeight, inventoryBarImageHeight, inventoryBarTextHeight, character_frame_size, windowSurfaceObj, whiteColor all_objects = maps.load(windowSurfaceObj) all_objects['ExplosionSprite'] = pygame.sprite.Group() characterObj = None if len(all_objects['CharacterSprite']) == 1: characterObj = all_objects['CharacterSprite'].sprites()[0] elif len(all_objects['CharacterSprite']): raise Exception('The map you loaded has more than two character starting positions.') else: raise Exception('The map you loaded has no character starting position.') if len(all_objects['WinSprite']) == 0: raise Exception('The map you loaded has no level exit.') visible_window_tl = centerWindow(characterObj.getPosition()) objects.ScienceSprite.set_visible_window_tl(visible_window_tl) while True: if characterObj.health == 0: windowSurfaceObj.fill(blackColor) font = pygame.font.Font("freesansbold.ttf", 16) text=font.render("You are dead.", True, whiteColor) textpos = text.get_rect(centerx=windowSize[0]/2) textpos.top = 300 windowSurfaceObj.blit(text, textpos) pygame.display.update() pygame.time.delay(2000) return winCondition = pygame.sprite.spritecollide(characterObj, all_objects["WinSprite"], False) if len(winCondition) != 0: windowSurfaceObj.fill(blackColor) font = pygame.font.Font("freesansbold.ttf", 16) text=font.render("You escaped the lab!", True, whiteColor) textpos = text.get_rect(centerx=resolution[0]/2) textpos.top = 300 windowSurfaceObj.blit(text, textpos) pygame.display.update() pygame.time.delay(2000) return windowSurfaceObj.fill(whiteColor) visible_window_tl = moveWindow(characterObj.getPosition(), visible_window_tl) if maps.imagename: windowSurfaceObj.blit(maps.imgsurf, [-coord for coord in visible_window_tl]) objects.ScienceSprite.set_visible_window_tl(visible_window_tl) for sprite_name, sprite_group in all_objects.iteritems(): sprite_group.update() collidingSprites = [] # collidingSharks = {} spriteGroupsToCollideWith = [all_objects['PlatformSprite'], all_objects['BackgroundPlatformSprite']] for spriteGroup in spriteGroupsToCollideWith: collidingSprites.extend(pygame.sprite.spritecollide(characterObj, spriteGroup, False)) # collidingSharks.update(pygame.sprite.groupcollide(all_objects['SharkSprite'], spriteGroup, False, False)) characterObj.resolveCollision(collidingSprites) # for shark in collidingSharks.keys(): # shark._velocity *= -1 # shark._imgkey = 1-shark._imgkey collidingBeakers = pygame.sprite.spritecollide(characterObj, all_objects["BeakerSprite"], True) if len(collidingBeakers) != 0: characterObj.resolveCollisionWithBeakers(collidingBeakers) collidingEvil = [] spriteGroupsToCollideWith = [all_objects['FireSprite'], all_objects['SharkSprite'], all_objects['StalactiteSprite'], all_objects['StalagmiteSprite']] for spriteGroup in spriteGroupsToCollideWith: collidingEvil.extend(pygame.sprite.spritecollide(characterObj, spriteGroup, False)) if len(collidingEvil) != 0: characterObj.resolveCollisionWithEvil(collidingEvil) for event in pygame.event.get(): if event.type == QUIT: pygame.quit() sys.exit() if event.type == KEYDOWN: if event.key == K_SPACE and characterObj.beakers > 0: characterObj.beakers -= 1 cpos = characterObj.getPosition() mypos = (cpos[0]-32, cpos[1]-32) explosionSprite = objects.ExplosionSprite(mypos, all_objects['ExplosionSprite'], size=(96,96)) # Check for shark removal collidingSharkExplosions = pygame.sprite.spritecollide(explosionSprite, all_objects['SharkSprite'], True) if characterObj.damageFlash != 0: windowSurfaceObj.fill(whiteColor) pygame.display.update() fpsClock.tick(100) continue for sprite_name, sprite_group in all_objects.iteritems(): if getattr(objects,sprite_name)._imagename: sprite_group.draw(windowSurfaceObj) # technically, this code will render every sprite, even if it is off-screen # at the moment, this doesn't seem to slow us down # if this becomes an issue, we can try something else inventory = pygame.Rect(0, resolution[1], resolution[0], inventoryBarHeight) windowSurfaceObj.fill(blackColor, inventory) windowSurfaceObj.blit(heartImg, (40,resolution[1]+inventoryBarImageHeight)) windowSurfaceObj.blit(beakerImg, (170,resolution[1]+inventoryBarImageHeight)) font = pygame.font.Font("freesansbold.ttf", 16) textHealth =font.render("x " + str(characterObj.health), True, whiteColor) textBeakers =font.render("x " + str(characterObj.beakers), True, whiteColor) windowSurfaceObj.blit(textHealth, (80,resolution[1]+inventoryBarTextHeight)) windowSurfaceObj.blit(textBeakers, (210,resolution[1]+inventoryBarTextHeight)) pygame.display.update() fpsClock.tick(100)
mymenu = rpgmenu.Menu( screen , 150 , 280 , 340 , 170 ) mymenu.predraw = predraw mymenu.add_item( "Play Game" , 1 ) mymenu.add_item( "Create Level" , 2 ) mymenu.add_item( "Edit Level" , 3 ) mymenu.add_item( "Quit" , -1 ) keep_going = True while keep_going: n = mymenu.query() if n == 1: the_level = maps.load( "gorch.dat" ) pc = player.Player( x = 100, y=360 ) the_level.enter( pc , screen ) elif n == 2: editor.create_new_level( screen ) elif n == 3: editor.edit_existing_level( screen ) elif n == -1: keep_going = False if pygwrap.GOT_QUIT: keep_going = False