其他分享
首页 > 其他分享> > 7.pyagem-游戏背景

7.pyagem-游戏背景

作者:互联网

背景交替滚动 游戏启动后,背景图像不断的向下移动 在视觉上产生角色不断向上移动的错觉 游戏背景不断变化,游戏主角的位置报错不变   实现方案
  1. 创建两张背景图
  2. 第一张完全和屏幕重合,第二章在屏幕的正上方
  3. 两种图像一起向下运动,当当前角色的 rect.y>=屏幕高度时,说明已经移动到欧美下方
  4. 将移动到屏幕下方的这张图像,设置到屏幕的正上方,rect.y = -rect.height,以此循环
  设计背景类

"""游戏背景精灵"""

class Background(GameSprite):

    def update(self):
        # 调用父类的update方法实现移动
        super().update()
        # 重写父类update方法,判断是否移出屏幕
        if self.rect.y >= SCREEN_RECT.height:
            #如果移出屏幕,将图像设置到屏幕上方
            self.rect.y = -self.rect.height
  背景图像的交替实现
#plane_main.py


# 私有方法-创建精灵、精灵组
def __create_sprites(self):
    # 创建两个背景精灵
    background_1 = Background('./images/background.png', 1)
    background_2 = Background('./images/background.png', 1)
    # 将第二个背景精灵的y值设置为图片的高度
    background_2.rect.y = background_2.rect.height
    # 将背景精灵加入精灵组,实现循环滚动
    self.back_group = pygame.sprite.Group(background_1,background_2)
    
# 私有方法-更新精灵组
def __update_sprites(self):
    self.back_group.update()  # 更新精灵组所有精灵
    self.back_group.draw(self.screen)  # 绘制精灵组图像
  利用初始化方法,简化背景精灵的创建 """游戏背景精灵""" class Background(GameSprite): def __init__(self, is_alt=False): # 调用父类方法,完成精灵的创建 super().__init__('./images/background.png', 1) # is_alt字段判断是否是交替图像,如果是,需要设置初始位置 if is_alt: self.rect.y = -self.rect.height def update(self): # 调用父类的update方法实现移动 super().update() # 重写父类update方法,判断是否移出屏幕 if self.rect.y >= SCREEN_RECT.height: # 如果移出屏幕,将图像设置到屏幕上方 self.rect.y = -self.rect.height
class Background(GameSprite):

    def __init__(self, is_alt=False):
        # 调用父类方法,完成精灵的创建

        super().__init__('./images/background.png', 1)

        # is_alt字段判断是否是交替图像,如果是,需要设置初始位置
        if is_alt:
            self.rect.y = -self.rect.height
    # 私有方法-创建精灵、精灵组
    def __create_sprites(self):
        # 创建两个背景精灵加入精灵组,实现循环滚动
        background_1 = Background()
        background_2 = Background(True) # 设置True表示交替背景,设置位置
        self.back_group = pygame.sprite.Group(background_1,background_2)
 

标签:__,游戏,背景,self,精灵,update,pyagem,background,rect
来源: https://www.cnblogs.com/Mickey-7/p/16296779.html