背景をスクロールさせることで、移動を表現します。
背景をスクロールさせる
シューティングゲームでよくある、背景をスクロールさせることでステージの進行を表現します。
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をマイナスにすれば逆のスクロールも可能です。
テキストに同じ計算式を適用すれば、スタッフロールのようなものを実装することもできます。