Pygame中的垂直滚动背景

时间:2013-04-13 00:38:19

标签: python-2.7 pygame vertical-scrolling

我试图让我的背景图片列表在他们点击我的屏幕底部后立即重新定位....

我有一个Camera Object,它将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转换而重叠行。

1 个答案:

答案 0 :(得分:1)

你可以尝试: PyParallax看起来像你想做的更多。