예제 #1
0
    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=[])
예제 #2
0
파일: editor.py 프로젝트: jwvhewitt/rixs
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 )
예제 #3
0
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')
예제 #4
0
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)
        
예제 #5
0
파일: science.py 프로젝트: jmoldow/Science
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)
예제 #6
0
파일: main.py 프로젝트: jwvhewitt/rixs
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