Exemple #1
0
def generateTiles(block):
    global enemies_n
    gpBack = pygame.sprite.RenderUpdates()
    gpFore = pygame.sprite.RenderUpdates()
    gpEnem = pygame.sprite.RenderUpdates()

    prevGenerated = True
    if block not in seeds:
        prevGenerated = False
        seeds[block] = random.randrange(0,10000000)

    bg, fg, en, it = mapgen.gen_block(seeds[block])
    for b in bg:
        x, y = mapgen.tiles[bg[b]][0]
        wid = hei = Config['PIXELS_PER_TILE']
        rec = Rect((x*wid, y*hei), (wid, hei))
        img = ssBottom.image_at(rec)
        spr = RelativeSprite(camera=hero, offset=(SCREEN_WIDTH/2, SCREEN_HEIGHT/2))
        spr.image = img
        spr.rect = img.get_rect()
        spr.truePos = [block[0]*Config['PIXELS_PER_BLOCK'] + b[0]*45, block[1]*Config['PIXELS_PER_BLOCK'] + b[1]*45]
        active.add(spr)
        gpBack.add(spr)

    for f in fg:
        x, y = mapgen.tiles[fg[f]][0]
        wid = hei = Config['PIXELS_PER_TILE']
        rec = Rect((x*wid, y*hei), (wid, hei))
        if fg[f] in [1, 10]:
            rec = Rect((x*wid-1, y*hei-0), (wid, hei)) #0, 0 gives transparent image wtf
        img = ssTop.image_at(rec)
        spr = RelativeSprite(camera=hero, offset=(SCREEN_WIDTH/2, SCREEN_HEIGHT/2))
        spr.image = img
        spr.rect = img.get_rect()
        spr.truePos = [block[0]*Config['PIXELS_PER_BLOCK']+f[0]*45, block[1]*Config['PIXELS_PER_BLOCK']+f[1]*45]
        active.add(spr)
        gpFore.add(spr)

    if not prevGenerated and multiplayer.hosting:
        for e in en:
            x, y = mapgen.tiles[en[e]][0]
            wid = hei = Config['PIXELS_PER_TILE']
            rec = Rect((x*wid, y*hei), (wid, hei))
            img = ssTop.image_at(rec)

            truePos = [block[0]*Config['PIXELS_PER_BLOCK']+e[0]*45, block[1]*Config['PIXELS_PER_BLOCK']+e[1]*45]

            enemyClasses = {1: ethunterone, 2: cat}
            spr = enemyClasses[en[e]](*truePos)
            spr.setCamera(hero)
            spr.setOffset((SCREEN_WIDTH/2, SCREEN_HEIGHT/2))
            spr.update(0)
            enemies.add(spr)
            actors.add(spr)
            active.add(spr)
            spr.target = hero
            gpEnem.add(spr)

            if not isinstance(spr, cat):
                hb = HealthBar(target=spr)
                actors.add(hb)
                active.add(hb)
            
            enemies_list_lock.acquire()
            enemies_list[enemies_n] = spr
            spr.n = enemies_n
            enemies_n += 1
            enemies_list_lock.release()

    for i in it:
        print i, it[i]
        (x, y) = (3, 3)
        wid = hei = Config['PIXELS_PER_TILE']
        rec = Rect((x*wid, y*hei), (wid, hei))
        print rec
        img = ssBottom.image_at(rec)
        truePos = [block[0]*Config['PIXELS_PER_BLOCK']+i[0]*45, block[1]*Config['PIXELS_PER_BLOCK']+i[1]*45]

        spr = Gem()
        spr.truePos = truePos
        spr.setCamera(hero)
        spr.setOffset((SCREEN_WIDTH/2, SCREEN_HEIGHT/2))
        spr.update(0)
        items.add(spr)
        active.add(spr)
        actors.add(spr)
        gpEnem.add(spr)

    return gpBack, gpFore, gpEnem