I'm trying to make a game with pygame in which an object moves and i'm trying to get rid of its previous image by drawing a background colored object in its previous position, but for some reason it just wont work, and i've extracted the part of the code which fails
import pygame, sys, math
pygame.init()
player = [250, 250]
size = 50
WIDTH = 10*size
HEIGHT = 10*size
speed = 1
prev_pos = player
W = False
screen = pygame.display.set_mode((WIDTH, HEIGHT))
clock = pygame.time.Clock()
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_w:
W = True
if event.type == pygame.KEYUP:
if event.key == pygame.K_w:
W = False
print(prev_pos)
if W:
player[1] = player[1]-speed
print(f"wtf? {prev_pos}ww")
pygame.draw.circle(screen, 'black', center=(prev_pos[0], prev_pos[1]), radius=20)
pygame.draw.circle(screen, 'blue', center=(player[0], player[1]), radius=20)
prev_pos = player
print(f"prev pos has changed {prev_pos}")
pygame.display.flip()
clock.tick(60)
this is the original code you can move with w key
a = [250, 250]
b = a
while True:
if a[0] > 0:
print(b)
a[0] += 20
print(b)
print(f"b has changed {b}")
and for some reason when a changes it changes b, now i know it might not be a bug but i can't fix this issue on my own
i tried storing it in another variable, another list and all kinds of stuff but nothing worked