Cześć,
mam problem z listą.
class Platform:
countOfPlatforms = 10
def __init__(self):
self.PLATFORM_IMG = pygame.image.load('assets/platform.png')
self.position = [[0, 0]]
def width(self):
return self.PLATFORM_IMG.get_width()
def height(self):
return self.PLATFORM_IMG.get_height()
def setPos(self, x, y):
self.position[0] = x
self.position[1] = y
def setPos(self, args):
self.position = [args[0], args[1]]
def pos(self):
return [ self.position[0], self.position[1] ]
def x(self):
return self.pos()[0]
def y(self):
return self.pos()[1]
FPS = 60
fpsClock = pygame.time.Clock()
WIDTH = 400
HEIGHT = 533
MID_HEIGHT = 200
DISPLAYSURF = pygame.display.set_mode((WIDTH, HEIGHT), 0, 32)
hero = player.Player()
platformObjects = [Platform()] * Platform.countOfPlatforms
platforms = [[0, 0]] * Platform.countOfPlatforms
for i in range(Platform.countOfPlatforms):
randomX = random.randrange(0,WIDTH)
randomY = random.randrange(0,HEIGHT)
platformObjects[i].setPos([randomX, randomY])
#platforms[i] = [randomX, randomY]
pygame.display.set_caption('Ice Tower')
def main():
while True: # the main game loop
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()
for i in range(Platform.countOfPlatforms):
DISPLAYSURF.blit(platformObjects[i].PLATFORM_IMG, platformObjects[i].pos())
#DISPLAYSURF.blit(platformObjects[i].PLATFORM_IMG, platforms[i])
pygame.display.update()
fpsClock.tick()
Próbuje utworzyć listę z klasami, które posiadają pozycję elementu, który później rysuje jeśli użyje powyższego kodu to rezultatem będzie.
natomiast jeśli odkomentuje kod '#' to wszystko jest OK
Podsumowując jeśli użyje powyższego kodu to wszyskie wartości mają taką samą pozycje mimo że sprawdzałem za pomocą print() że wartości są randomowe ale jeśli wejdą w pętlę While True to nagle wszystkie wartości są takie same. Nie jestem ekspertem od Pythona i za każdą pomoc będę wdzięczny.
Pozdrawiam