Pygame: Как сбросить фон на новую позицию после смерти игрока - PullRequest
1 голос
/ 24 апреля 2020

Итак, я делаю игру в пигме, которая представляет собой вертикальный платформер. Прямо сейчас у меня есть фоновое изображение, которое прокручивается по вертикали. У меня также есть платформы, враги, бонусы, которые также прокручиваются, но они отделены от фона. Однако, как только игрок умирает, это фоновое изображение остается там, где оно было, когда игрок умер. В основном, если игрок умирает и пытается снова, фон будет на той же высоте, что и при смерти игрока, поэтому все выглядит странно и неуместно. Мне было интересно, смогу ли я сбросить фон в положение игрока, чтобы все выровнялось правильно. Любые другие идеи также будут полезны Вот мой важный код. Снимите комментарий, если вам нужно больше:

#Enemies spawning
for ene in self.enemy_list:
    e = enemy(*ene)
    self.all_enemy.add(e)
    self.all_sprites.add(e)

#Platforms spawning
for plat in self.platform_list:
    p = Platform(*plat)
    self.all_sprites.add(p)
    self.platforms.add(p)

#Power ups spawning
for powerup in self.powerup_list:
    pu = powerUp(*powerup)
    self.all_sprites.add(pu)
    self.powerups.add(pu)
self.run()








# Scrolling Screen
            if self.player.rect.top <= screenLength / 4:
                self.player.pos.y += abs(self.player.vel.y)
                background.scroll(0,int(abs(self.player.vel.y)))
                #Enemy Scrolling
                for ene in self.all_enemy:
                    ene.rect.y += abs(self.player.vel.y)
                #Platform Scrolling
                for plat in self.platforms:
                    plat.rect.y += abs(self.player.vel.y)
                    if plat.rect.top >= screenLength:
                        plat.kill()


                #Projectile scrolling
                for bull in self.bullets:
                    bull.rect.y += abs(self.player.vel.y)
                #Powerup scrolling
                for powerup in self.powerups:
                    powerup.rect.y += abs(self.player.vel.y)

                #End object scrolling
                for End in self.endings:
                    End.rect.y += abs(self.player.vel.y)

     #Dying
        if self.health <= 0:
            self.playing = False

1 Ответ

1 голос
/ 24 апреля 2020

Вы можете иметь default_background, которое будет изображением и не изменится, тогда, когда вы установите игру в new(), сделайте background = default_background с background = default_background.copy(). Так что начинается по умолчанию. затем прокрутите background, и когда вам нужно сбросить его, просто сделайте background = default_background снова

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...