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