pygame之layer的运用(一)滚动背景的实现。

    先看下前面的文字,里面介绍了滚动背景的实现。但没有用到精灵类。

https://mp.csdn.net/postedit/88089379

    前面的日记里,用精灵类实现了大部分的功能,除了滚动背景,大家可以下载下我编写的飞机大战的源代码,里面实现了滚动背景的效果。而且能自动切割图片,自动生成所需背景的列表。

        因为在单个精灵类里,只能有一个image存在,滚动背景一般是两个图片image。要实现效果,只能建立两个精灵,在主函数里进行坐标传递,分别绘制两个精灵的图片。

        偶然在国外的网站上,找到了很多示例,里面的例题让人受益匪浅。其中有Layer的运用加滚动背景的实现。

用一个allgroups来管理所有的层,而且能自动管理每个精灵的绘制,更新。代码精炼、轻松不少。

update()函数是关键,要多多理解一下。

class Background(pygame.sprite.Sprite):
    """
        generate a Background sprite for the background, 
           to demonstrate vertical scrolling.background slide from top to bottom
           parameter: vect_pos must use in pygame.math.Vector2D type
    """

    def __init__(self, vect_pos):
        self._layer = -1
        self.groups = allgroup, backgroundgroup
        pygame.sprite.Sprite.__init__(self, self.groups)  # THE Line
        self.image = pygame.image.load('data/bg.png').convert_alpha()
        # self.image.convert_alpha()
        self.rect = self.image.get_rect()
        self.pos = vect_pos
        self.rect.x = self.pos.x
        self.rect.y = self.pos.y
        self.parent = False

    def update(self):
        self.rect.y += 1
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值