def parser_basic_info(self, parse): ''' Parsea la informacián básica que tendran todos los objetos del juego. ''' parent_node = parse.firstChild sprite_name = str(parent_node.getAttribute('sprite_code')) self.original_sprite = resource.get_sprite(sprite_name) for element in parse.getElementsByTagName('animation'): animation_name = str(element.getAttribute('name')) animation_frames = str(element.getAttribute('frames')) animation_delay = int(element.getAttribute('delay')) if animation_name == 'normal': self.animations[NORMAL] = animation.Animation(animation_frames, animation_delay) elif animation_name == 'noaction': self.animations[NOACTION] = animation.Animation(animation_frames, animation_delay) elif animation_name == 'run': self.animations[RUN] = animation.Animation(animation_frames, animation_delay) elif animation_name == 'forward': self.animations[FORWARD] = animation.Animation(animation_frames, animation_delay) elif animation_name == 'reverse': self.animations[REVERSE] = animation.Animation(animation_frames, animation_delay) elif animation_name == 'damaged': self.animations[DAMAGED] = animation.Animation(animation_frames, animation_delay) elif animation_name == 'erase': self.animations[ERASE] = animation.Animation(animation_frames, animation_delay) elif animation_name == 'yaw': self.animations[YAW] = animation.Animation(animation_frames, animation_delay) self.image = self.original_sprite[self.animations[NORMAL].get_frame()] self.rect = self.image.get_rect() self.mask = pygame.mask.from_surface(self.image)
def __init__(self): ''' Carga e inicializa la configuración principal y las variables principales de la clase ''' parser = xml.dom.minidom.parse(data.get_path_xml('configuration.xml')) for element in parser.getElementsByTagName('screen'): self.__screen_width = int(element.getAttribute('width')) self.__screen_height = int(element.getAttribute('height')) self.caption = element.getAttribute('caption') for element in parser.getElementsByTagName('fps'): self.fps = int(element.getAttribute('value')) pygame.init() self.screen = pygame.display.set_mode((self.__screen_width, self.__screen_height)) for element in parser.getElementsByTagName('icon'): icon_code = str(element.getAttribute('code')) self.icon = resource.get_image(icon_code) pygame.display.set_icon(self.icon) self.clock = pygame.time.Clock() self.__exit = False self.__actual_state = None ## A partir de aqui las variables no pertenecen a la clase game ## Si no para realizar las pruebas necesarias de la clase animation self.granny = resource.get_sprite('granny') self.walk = animation.Animation("0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30", 1) self.jump = animation.Animation("49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64", 1) self.attack = animation.Animation("64,65,67,68,69,70,71,72,73,74,75,76,77,78,79,80", 1) self.actual_animation = self.walk
def parser_basic_info(self, parse): ''' @brief Método que parsea la información basica de un objeto del juego. @param parse Parse a Archivo xml con xml.dom.minidom ''' parent_node = parse.firstChild sprite_name = str(parent_node.getAttribute('sprite_code')) self.original_sprite = resource.get_sprite(sprite_name) #Cargamos las distintas animaciones del objeto for element in parse.getElementsByTagName('animation'): animation_name = str(element.getAttribute('name')) animation_frames = str(element.getAttribute('frames')) animation_delay = int(element.getAttribute('delay')) #Vemos que tipo de animación es y lo añadimos al mapa de imagenes if animation_name == 'normal': self.animations[NORMAL] = animation.Animation(animation_frames, animation_delay) elif animation_name == 'noaction': self.animations[NOACTION] = animation.Animation(animation_frames, animation_delay) elif animation_name == 'run': self.animations[RUN] = animation.Animation(animation_frames, animation_delay) elif animation_name == 'forward': self.animations[FORWARD] = animation.Animation(animation_frames, animation_delay) elif animation_name == 'reverse': self.animations[REVERSE] = animation.Animation(animation_frames, animation_delay) elif animation_name == 'damaged': self.animations[DAMAGED] = animation.Animation(animation_frames, animation_delay) elif animation_name == 'erase': self.animations[ERASE] = animation.Animation(animation_frames, animation_delay) elif animation_name == 'yaw': self.animations[YAW] = animation.Animation(animation_frames, animation_delay) elif animation_name == 'fall': self.animations[FALL] = animation.Animation(animation_frames, animation_delay) #Inicializamos la imagen, el rectangulo y la mascara de pixeles self.image = self.original_sprite[self.animations[NORMAL].get_frame()] self.rect = self.image.get_rect() self.mask = pygame.mask.from_surface(self.image)