Hi again XD, now I'm trying to kill/re-spawn my enemy each time my player goes through the doors :     import pygame
    import os,sys
    import random
    import math
    img_path = os.path.join("punch.png")
    img_blob = os.path.join("blob.png")
    img_bullet = os.path.join("bullet.png")
    img_heart = os.path.join("heart.png")
    score = 0
    class Actor(pygame.sprite.Sprite):

    def __init__(self, x, y):
        super(Actor,self).__init__()
        self.image = pygame.Surface([116,116])
        self.image.set_colorkey(black)
        self.rect = self.image.get_rect()
        self.rect.x = x
        self.rect.y = y
        self.speed = 2

    class Enemy(Actor):

    def __init__(self, x, y):
         super(Enemy, self).__init__(x, y)
         self.target = None
         self.image.blit(pygame.image.load(img_blob),(0,0))
    def update(self, enemies):
        if self.target:
            dx,dy =  self.target.rect.x - self.rect.x,  self.target.rect.y - self.rect.y
            dist = math.hypot(dx,dy)
            dx,dy = dx / dist,dy / dist
            self.rect.x += dx * self.speed
            self.rect.y += dy * self.speed
            

    class Character(Actor):
    def __init__(self, x = 275, y = 250):
        super(Character, self).__init__(x, y)
        self.speed = 10
        self.image.blit(pygame.image.load(img_path),(0,0))
        self.score = 0
        self.heart = 5
    def update(self, enemies):
        if pygame.sprite.spritecollide(self, enemies, False):
            self.heart -= 1
            pygame.sprite.spritecollide(self, enemies, True)

        key = pygame.key.get_pressed()

        if key[pygame.K_w]:
            self.rect.y -= self.speed
        elif key[pygame.K_s]:
            self.rect.y += self.speed
        if key[pygame.K_a]:
            self.rect.x -= self.speed
        elif key[pygame.K_d]:
            self.rect.x += self.speed

        if self.rect.x > 1110:
            self.rect.x = 1110

        if self.rect.y < 20:
            self.rect.y = 20

        elif self.rect.y > 710:
            self.rect.y = 710
        if self.rect.x <20:
            self.rect.x = 20
        elif self.rect.x == 1110 and self.rect.y > 300 and self.rect.y < 400:
            self.rect.x = 25
        if self.rect.y == 20 and self.rect.x >500 and self.rect.x < 600:
            self.rect.y = 715
        elif self.rect.x == 20 and self.rect.y > 300 and self.rect.y < 400:
            self.rect.x = 1090
        if self.rect.y == 710 and self.rect.x >500 and self.rect.x < 600:
            self.rect.y = 25

    class Bullet(pygame.sprite.Sprite):
    def __init__(self,mouse,bird):
        pygame.sprite.Sprite.__init__(self)
        self.image = pygame.image.load(img_bullet)
        self.mouse_x,self.mouse_y = mouse[0], mouse[1]
        self.bird = bird
        self.rect = self.image.get_rect()
    def update(self,enemies):
        if pygame.sprite.spritecollide(self, enemies, False):
            bird.score += 10
            pygame.sprite.spritecollide(self, enemies, True)
        speed = -10.
        range = 50
        distance = [self.mouse_x - self.bird[0],self.mouse_y - self.bird[1]]
        norm = math.sqrt(distance[0] ** 2 + distance[1] ** 2)
        direction = [distance[0] / norm, distance[1] / norm]
        bullet_vector = [direction[0] * speed,direction[1] * speed]

        self.rect.x -=bullet_vector[0]
        self.rect.y -= bullet_vector[1]
        
            
        
        
        
    
    pygame.init()                               # Pygame is initialised (starts running)

    players = pygame.sprite.Group()
    screen = pygame.display.set_mode([1250,850]) # Set the width and height of the screen [width,height]
    pygame.display.set_caption("My Game")       # Name your window
    background_image = pygame.image.load("untilted.png")

    done = False                                # Loop until the user clicks the close button.

    clock = pygame.time.Clock()                 # Used to manage how fast the screen updates
    black    = (   0,   0,   0)                 # Define some colors using rgb values.  These can be
    white    = ( 255, 255, 255)                 # used throughout the game instead of using rgb values.
    font = pygame.font.Font(None,36)
    # Define additional Functions and Procedures here
    score = 0
    bird = Character()
    bullet = Bullet(pygame.mouse.get_pos(),[bird.rect.x,bird.rect.y])
    blob = Enemy(random.randint(200,1000),random.randint(200,300))
    blob.target=bird
    all_sprites = pygame.sprite.Group([blob, bird])
    enemies = pygame.sprite.Group([blob])

    # -------- Main Program Loop -----------
    while done == False:
    
    for event in pygame.event.get():        # Check for an event (mouse click, key press)
        key = pygame.key.get_pressed()
        if event.type == pygame.QUIT:       # If user clicked close window
            done = True                     # Flag that we are done so we exit this loop
        elif key[pygame.K_e]:
            bullet = Bullet(pygame.mouse.get_pos(),[bird.rect.x,bird.rect.y])
            bullet.rect.x = bird.rect.x
            bullet.rect.y = bird.rect.y
            all_sprites.add(bullet)
    screen.blit(background_image, (0, 0))

    all_sprites.update(enemies)
    all_sprites.draw(screen)
    textImg = font.render("Score: " + str(bird.score),1,white)
    textImg2 = font.render("Lives: " + str(bird.heart),1,white)
    screen.blit(textImg,(10,10))
    screen.blit(textImg2,(150,10))
    pygame.display.update()                   # Go ahead and update the screen with what we've drawn.

    clock.tick(20)                              # Limit to 20 frames per second
    if bird.heart == 0:
        pygame.quit()

    pygame.quit()
so in the Character class, in the update part, the bottom of it is where it is going through the doors, but when it goes through the doors, i an wanting to kill the enemy and then re-spawn it so it looks as if the player is going into a different room.