pygame(4)精灵组和读取图片

我们的素材往往是像上面这种类型,都统一保存在一个png里,同时它还附带了每个精灵的信息在一个同名的xml文件中:

这种素材的好处是我们可以通过一次性读取来获得大量的对象图片。代码当然是在sprites中新建一个spritesheet类。这个类的功能就是负责给其他类提供获得图片的方法等。
例如get_image()方法,传入坐标xy和图片的长宽就可以得到一个图片的对象。
在初始化的时候,传入的filename通过pg.image.load加载获得一个spritesheet对象,这个对象在get_image中通过blit第一个参数传进去:
image.blit(self.spritesheet,(0,0),(x,y,width,height)) image = pg.transform.scale(image,(width//2,height//2))
第二行代码用来调整图片的大小。在其他类中我们就可以用这个方法了:
self.image = self.game.spritesheet.get_image(0,864,70,70)
self.rect = self.image.get_rect()
这样就可以显示了。

浙公网安备 33010602011771号