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()

  这样就可以显示了。

posted @ 2020-06-16 17:35  灰人  阅读(839)  评论(0)    收藏  举报