Ejemplo n.º 1
0
    def __init__ ( self, color, initial_position, size, player = None ):
        """Creates a new ViewManager object."""
        #Sprite
        pygame.sprite.Sprite.__init__(self)

        self.image = pygame.Surface(size)
        self.image.fill(color)

        self.rect = self.image.get_rect()
        self.rect.topleft = initial_position

        #Drawable objects
        if (player == None):
            self.player = Character()
        else: self.player = player

        #Draw starting objects
        #self.setup()

        #Sprite Groups
        self.activeObjects = Group()
        self.activeBackground = Group()
        self.activeAvatar = pygame.sprite.GroupSingle()
        
        #Collision
        self.collision = CollisionManager()
Ejemplo n.º 2
0
 def __init__(self, pos, size, static, layer, vel=Vec2()):
     self.pos = pos
     self.size = size
     self.vel = vel
     self.static = static
     self.layer = layer
     self.callbacks = []
     CollisionManager().add(self)
Ejemplo n.º 3
0
 def remove(self):
     CollisionManager().remove(self)
Ejemplo n.º 4
0
class ViewManager (pygame.sprite.Sprite):
    def __init__ ( self, color, initial_position, size, player = None ):
        """Creates a new ViewManager object."""
        #Sprite
        pygame.sprite.Sprite.__init__(self)

        self.image = pygame.Surface(size)
        self.image.fill(color)

        self.rect = self.image.get_rect()
        self.rect.topleft = initial_position

        #Drawable objects
        if (player == None):
            self.player = Character()
        else: self.player = player

        #Draw starting objects
        #self.setup()

        #Sprite Groups
        self.activeObjects = Group()
        self.activeBackground = Group()
        self.activeAvatar = pygame.sprite.GroupSingle()
        
        #Collision
        self.collision = CollisionManager()

    def setup(self):
        """Does nothing at this point."""
        #self.image.blit(self.player.image, self.player.rect) #Draw player onto self
        pass

    def update(self):
        """Calls the update method of all active objects, checks for colisions with player."""
        self.collision.update()
        
        self.activeObjects.update()
        self.activeBackground.update()
        self.activeAvatar.update()
        

    def setCurrentView ( self , view ):
        """Replaces current active objects with those of the passed view."""
        if(DEBUG):print("Setting view");
        self.activeBackground.empty() #Get rid of old background
        self.activeObjects.empty() #Get rid of old objects
        self.activeAvatar.empty() #Get rid of old Avatar

        #Adds new background, objects, and avatar
        self.activeBackground.add(view.background)
        self.activeObjects.add(view.objects)
        self.activeAvatar.add(view.avatar)
        
        #Passes CollisionManager active objects
        self.collision.setActiveObjects(self.activeObjects, self.activeAvatar)
        
        
        pass

    def drawView ( self ):
        """Draws sprites in the proper order for depth
        
        1. Background
        2. Objects
        3. Player avatar
        
        """
        self.activeBackground.draw(self.image)
        self.activeObjects.draw(self.image)
        self.activeAvatar.draw(self.image)
        pass