Quantcast
Viewing all articles
Browse latest Browse all 14069

pygame player keeps drawing itself on screen when moving [duplicate]

I am making a game in pygame and I copied and pasted my Player class from my previous game but when the player moves it leaves a trail behind but it didn't do that in my previous game where I copied and pasted from.This is the player class:

class Player(pygame.sprite.Sprite):def __init__(self, x, y):    pygame.sprite.Sprite.__init__(self)    self.speed = 7    self.frames = []    self.index = 0    for num in range(1, 4):        img = pygame.image.load(f'hunter/img/player/player{num}.png')        img.convert()        img = pygame.transform.scale(img, (75, 75))        self.frames.append(img)    self.player = self.frames[self.index]    self.rect = self.player.get_rect()    self.rect.center = (x, y)def update(self):    # movement    dx = 0    dy = 0    keys = pygame.key.get_pressed()    if keys[pygame.K_w]:        dy -= self.speed    if keys[pygame.K_s]:        dy += self.speed    if keys[pygame.K_a]:        dx -= self.speed    if keys[pygame.K_d]:        dx += self.speed    self.rect.x += dx    self.rect.y += dy    # collison check    if (self.rect.left) + 24 < 0:        self.rect.left = -24    if (self.rect.right) - 24 > 1024:        self.rect.right = 1024 + 24    if (self.rect.top) + 24 < 0:        self.rect.top = -24    if (self.rect.bottom) - 24 > 512:        self.rect.bottom = 512 + 24    # shoot    display.blit(self.player, self.rect)

and this is the main game loop:

player = Player(200, 200)world = Tile(getTilemap('map1.txt'))while running:    for event in pygame.event.get():        if event.type == pygame.QUIT:            running = False    player.update()    world.draw()    pygame.display.flip()    CLOCK.tick(60)pygame.quit()

before I press d on my keyboardImage may be NSFW.
Clik here to view.
before

after I press dImage may be NSFW.
Clik here to view.
after


Viewing all articles
Browse latest Browse all 14069

Trending Articles