Esempio n. 1
0
def build_sprite_sheets(args, sprites):

    sheets = []

    layout = get_layout(args.layout)

    oldlen = 0

    with Timer('generate sheet layouts'):
        while sprites and len(sprites) != oldlen:
            oldlen = len(sprites)

            sheet = Sheet(min_size=args.min_size,
                          max_size=args.max_size,
                          rotate=args.rotate,
                          npot=args.npot,
                          square=args.square,
                          layout=layout)

            sprites = sheet.add(sprites)

            if sheet.sprites:
                sheets.append(sheet)

    if sprites:
        log.warn("Could not place:")
        for spr in sprites:
            log.warn("\t%s", spr.name)

    return sheets
Esempio n. 2
0
    def __init__(self, screen, name, center, settings):
        super(Ghost, self).__init__()
        self.screen = screen
        self.sheet = Sheet()
        self.name = name
        self.center = center
        self.settings = settings

        if self.name == 'Blinky':
            self.image = self.sheet.image(562, 0, 38, 38)

        if self.name == 'Inky':
            self.image = self.sheet.image(524, 0, 38, 38)

        if self.name == 'Pinky':
            self.image = self.sheet.image(486, 0, 38, 38)

        if self.name == 'Clyde':
            self.image = self.sheet.image(448, 0, 38, 38)

        self.image = pygame.transform.scale(
            self.image, (settings.block_width, settings.block_height))
        self.rect = self.image.get_rect()
        self.rect.center = center
        self.frame = 0
        self.ticks = 0
Esempio n. 3
0
 def __init__(self, settings, screen):
     super(Pacman, self).__init__()
     self.dots_eaten = 0
     self.settings = settings
     self.screen = screen
     self.sheet = Sheet()
     self.image = self.sheet.image(376, 0, 38, 38)
     self.image = pygame.transform.scale(
         self.image, (settings.block_width, settings.block_height))
     self.rect = self.image.get_rect()
     self.rect.x = 0
     self.rect.y = 0
     self.ticks = 0
     self.MOVINGUP = self.MOVINGDOWN = self.MOVINGLEFT = self.MOVINGRIGHT = False
     self.frame = 0
     self.move_tick = 0
     self.last_x = 0
     self.last_y = 0
     self.intent = 'none'
     self.angle = 0
Esempio n. 4
0
def load_and_process_sprites(args):

    sprites = load_sprites(args.sprites)

    if not sprites:
        raise ValueError('No sprites found.')

    if args.mask:
        ## Mask sprites against background color
        sprites = mask_sprites(sprites, args.mask)

    if args.trim:
        ## Trim sprites to visible area
        sprites = trim_sprites(sprites)
    else:
        ## Generate hashes of trimmed sprites
        sprites = hash_sprites(sprites)

    if args.alias is not None:
        ## Find and remove duplicate sprites
        sprites, aliased = alias_sprites(sprites, args.alias)

        if aliased:
            sheet = Sheet(npot=True, layout=get_layout('stack'))
            sheet.add(aliased)
            texture = sheet.prepare(args.debug)
            texname = '%salias.png' % args.prefix
            texture.save(texname)

    if args.extrude:
        ## Extrude sprite edges to avoid color bleed
        sprites = extrude_sprites(sprites, args.extrude)

    if args.pad:
        ## Insert transparent padding between sprites
        sprites = pad_sprites(sprites, args.pad)

    if args.sort:
        sprites = sort_sprites(sprites, args.sort, args.rotate)

    return sprites