0

Does anybody has an idea how i can move the single insteances (lava) repeatingly and on a different y axis? Inside the "def update(self):" Method, this code allows them at least to fall down: self.rect.center = [self.pos_x,self.rect.center[1] + 3]

But how can every single "lava" object fall shifted from the top of the screen down to the bottom of the screen?

class Lava(pygame.sprite.Sprite): def init(self,pos_x,pos_y): super().init() self.pos_x = pos_x self.pos_y = pos_y self.sprites = [] self.sprites.append(pygame.image.load("Sprites\Lava_1.png")), self.sprites.append(pygame.image.load("Sprites\Lava_2.png")), self.sprites.append(pygame.image.load("Sprites\Lava_3.png")), self.sprites.append(pygame.image.load("Sprites\Lava_4.png")), self.current_sprite = 0 self.image = self.sprites[self.current_sprite] self.rect = self.image.get_rect()

def Score(self):
    pass

def update(self):
    self.current_sprite += 0.5
    if self.current_sprite >= len(self.sprites):
        self.current_sprite = 0
    self.image = self.sprites[int(self.current_sprite)]
    self.rect.center = [self.pos_x,self.rect.center[1] + 3]
    if self.pos_y >= HEIGHT:
        self.pos_y = 0


#Instances_Lava
moving_sprites = pygame.sprite.Group()

lava = Lava(random.randrange(0,1440,50),0)
lava2 =Lava(random.randrange(0,1440,100),10)
lava3 =Lava(random.randrange(0,1440,150),50)
lava4 =Lava(random.randrange(0,1440,200),100)
lava5 =Lava(random.randrange(0,1440,50),300)
lava6 =Lava(random.randrange(0,1440,100),500)
lava7 =Lava(random.randrange(0,1440,150),700)
lava8 =Lava(random.randrange(0,1440,200),800)
lava9 =Lava(random.randrange(0,1440,200),1000)
lava10 =Lava(random.randrange(0,1440,200),100)
lava11 =Lava(random.randrange(0,1440,200),0)
lava12 =Lava(random.randrange(0,1440,200),0)
lava13 =Lava(random.randrange(0,1440,200),0)
lava14 =Lava(random.randrange(0,1440,200),0)
moving_sprites.add
(lava,lava2,lava3,lava4,lava5,lava6,lava7,lava8,lava9,lava10,lava11,lava12,lava13,lava14)

I tried for example to change the pos_y variable inside a single object: lava = Lava(random.randrange(0,1440,50),0) lava2 =Lava(random.randrange(0,1440,100),10) but the problem is they get of course overwritten inside the def update method: self.rect.center = [self.pos_x,self.rect.center[1] + 3] And i dont have an idea yet to fix this problem or find the right variables to get it working`

Rabbid76
  • 202,892
  • 27
  • 131
  • 174
Benjamin
  • 1
  • 1

0 Answers0