0
我試圖讓我的背景圖像列表儘快重新定位自己,因爲他們打我的屏幕底部....垂直滾動背景中的Pygame
我有一個相機對象,更新其self.state到我的移動球的位置。
這裏是我的背景類:
class Background(pygame.sprite.Sprite):
def __init__(self, x, y):
pygame.sprite.Sprite.__init__(self)
self.image = pygame.image.load('images/clouds.jpg').convert()
self.x = x
self.y = y
self.rect = self.image.get_rect()
self.rect.left, self.rect.top = self.x, self.y
def update(self,cam):
self.rect.left = self.x + (0.2*cam.state.left)
self.rect.top = self.y + (0.2*cam.state.top)
0.2 *是讓它動比我實際的相機移動速度較慢。
以下是我對我的大主循環之前建立BG圖片:
all_backgrounds = pygame.sprite.Group()
#building bg images
for i in xrange((WIDTH+BG_WIDTH)/BG_WIDTH):
for j in xrange((HEIGHT+BG_HEIGHT)/BG_HEIGHT):
all_backgrounds.add(Background(BG_WIDTH*i,BG_HEIGHT*j))
然後在我的主循環:
......
all_backgrounds.update(cam)
......
all_backgrounds.draw(screen)
我找好的建議就如何使工作順利進行。我嘗試在我的Background.update()中使用if語句,但它使它變得遲緩,並且由於Int,float轉換造成重疊行的撕裂問題。
這個庫是爲了水平滾動,但我修改它,並使用它像一個魅力! – Amzraptor
對了,垂直滾動,它只是想到了圖層(你有1個圖像+前景精靈),他們在他們的例子中使用3個圖像,但我確定交換x對於y很容易。 –