def load_data(self): """Loads pertinent data for the game""" # Map initialization self.map = TiledMap(r'../assets/stage_1.tmx') self.map_image = self.map.make_map() map_rect = self.map_image.get_rect() # Sprite initialization pacman_sprites = Spritesheet(r'../assets/sprites.png') self.open_mouth = pacman_sprites.get_sprite(0, 0, TILESIZE, TILESIZE) pellet_sprites = Spritesheet(r'../assets/small_pellet.png') self.pellet_sprite = pellet_sprites.get_sprite(0, 0, TILESIZE, TILESIZE)
class Title(pygame.sprite.Sprite): # classe do título def __init__(self, filename, numberFrames, X, Y): super().__init__() self.filename = filename # arquivo self.spritesheet = Spritesheet(filename) # sprites do arquivo self.numberFrames = numberFrames # quantidade de frames self.sprites = [] # vetor das sprites for i in range(0, numberFrames): # adicionando todas as sprites self.sprites.append( self.spritesheet.get_sprite(0 + i * 312, 0, 312, 38)) # self.current_sprite = 0 # sprite atual self.image = self.sprites[self.current_sprite] # imagem atual self.rect = self.image.get_rect(top=Y, left=X) # posição da sprite def update(self): if self.alive == True: self.current_sprite += 1 # muda a sprite, indo para a seguinte if self.current_sprite >= len( self.sprites ): # se passar por todas as sprites, volta para a inicial self.current_sprite = 0 # self.image = self.sprites[ self.current_sprite] # atualiza a imagem atual def die(self): self.alive = False
class Explosion(pygame.sprite.Sprite): # classe da explosão def __init__(self, filename, numberFrames, X, Y): super().__init__() self.filename = filename # arquivo self.spritesheet = Spritesheet(filename) self.numberFrames = numberFrames # número de frames self.sprites = [] # vetor das sprites for i in range(0, numberFrames): # adicionando todas as sprites self.sprites.append( self.spritesheet.get_sprite(0 + i * 32, 0, 32, 32)) # self.current_sprite = 0 # sprite atual self.image = self.sprites[ self.current_sprite] # carrega a sprite atual, no caso a primeira self.rect = self.image.get_rect(top=Y, left=X) # posição da explosão def update(self): self.current_sprite += 1 # muda a sprite atual, indo para a próxima if self.current_sprite >= len(self.sprites): # self.current_sprite = 0 # se passar por todas as sprites, ela "morre" self.kill() # self.image = self.sprites[ self.current_sprite] # muda a imagem para a sprite atual
[["no"], ["no"], ["no"], ["no"], ["fo"]]] states = [deepcopy(state)] nrow = len(state) ncol = len(state[0]) # Create the window screen = pg.display.set_mode((ncol * 90, nrow * 90)) pg.display.set_caption('') # Import images images = Spritesheet("spritesheet.png") test = pg.transform.scale(images.get_sprite(0 * 24, 57 * 24, 24, 24), (90, 90)) baba = pg.transform.scale(images.get_sprite(1 * 24, 0 * 24, 24, 24), (90, 90)) baba_text = pg.transform.scale(images.get_sprite(6 * 24, 27 * 24, 24, 24), (90, 90)) flag = pg.transform.scale(images.get_sprite(6 * 24, 21 * 24, 24, 24), (90, 90)) flag_text = pg.transform.scale(images.get_sprite(1 * 24, 30 * 24, 24, 24), (90, 90)) is_text = pg.transform.scale(images.get_sprite(18 * 24, 30 * 24, 24, 24), (90, 90)) you_text = pg.transform.scale(images.get_sprite(20 * 24, 42 * 24, 24, 24), (90, 90)) win_text = pg.transform.scale(images.get_sprite(17 * 24, 42 * 24, 24, 24), (90, 90)) wall = pg.transform.scale(images.get_sprite(0 * 24, 57 * 24, 24, 24), (90, 90)) rock = pg.transform.scale(images.get_sprite(15 * 24, 21 * 24, 24, 24), (90, 90))