第7章    金币动画

地下金币关的空中漂浮着很多金币,它们会持续闪烁,散发着耀眼的光芒,如图7‑1所示。

图7‑1金币动画

7.1    瓦片图集

金币的瓦片图集是另一张图片item_objects.png,如图7‑2所示,这个图集包括蘑菇、火力花、无敌星星、问号砖块和斧头等等物体。

图7‑2金币的瓦片图集

         首先,将图片放置在resources\images目录下,然后,创建一个缓存类ItemImageCache.py,并将其放入game_globals目录中,代码如下所示:

         07\01\game_globals\ItemImageCache.py

import pygame

from utils.ImageUtil import ImageUtil

 

 

# 物体图集

class ItemImageCache:

    def __init__(self):

 

        # 加载图集

        itemSet = pygame.image.load("resources/images/item_objects.png").convert_alpha()

        self.flashingCoinImg1 = ImageUtil.getSubImage(itemSet, 7, 1)  # 闪烁金币图片

        self.flashingCoinImg2 = ImageUtil.getSubImage(itemSet, 7, 2)

        self.flashingCoinImg3 = ImageUtil.getSubImage(itemSet, 7, 3)

        self.flashingCoinImg4 = ImageUtil.getSubImage(itemSet, 7, 4)

         代码中只缓存了金币的图片,后续可以根据需要再添加其他物体。在初始化游戏时,创建一个图片缓存,并将其放入Globals对象中,方便管理和使用,代码如下所示:

07\01\Game.py

        # 初始化图片缓存

        Globals.tilesImageCache = TilesImageCache()

        Globals.marioImageCache = MarioImageCache()

        Globals.itemImageCache = ItemImageCache()