背景をスクロールさせる

背景をスクロールさせることで、移動を表現します。

背景をスクロールさせる

シューティングゲームでよくある、背景をスクロールさせることでステージの進行を表現します。

class Main():
    def __init__(self):
        (省略)

        self.bg = tools.load_image("data", "bg.png")
        # スクロール用のx座標
        self.bgx = 0
        # スクロールスピード
        self.scroll_speed = 3

        clock = pygame.time.Clock()
        while True:
            clock.tick(30)
            self.update()
            self.draw(screen)
            pygame.display.update()
            self.key_handler()

    def update(self):
        # スクロール用x座標の更新
        self.bgx = (self.bgx - self.scroll_speed) % SCR_RECT.width
        self.all.update()
        self.collision_detection()

    def draw(self, screen):
        # 背景画像を2枚描画する
        screen.blit(self.bg, (self.bgx, 0))
        screen.blit(self.bg, (self.bgx - SCR_RECT.width, 0))
        self.all.draw(screen)

一枚の背景画像を少しずつ動かしながら二枚描画し、スクロールを表現します。

x座標の代わりにy座標にすれば、縦方向のスクロールにすることもできますし、scroll_speedをマイナスにすれば逆のスクロールも可能です。

テキストに同じ計算式を適用すれば、スタッフロールのようなものを実装することもできます。