一个关于派生精灵子类的问题说明

初始化方法中的self.image和self.rect名字是固定的,不可以用其它名字,可能是因为这两个变量名是精灵中默认包含的,speed是我们自定义的,所以它可以使用任何其它名字。

所以,一个精灵类,包含两个属性和两个方法,一个属性是要显示的图像数据【self.image】,另一个属性是图像位置【self.rect】,一个方法是更新图像位置【update()】,另一个方法是从所有组中删除【kill()】

 

import pygame

class GameSprite(pygame.sprite.Sprite):
    def __init__(self,image_name,speed = 1):
        super().__init__()
        self.image = pygame.image.load(image_name)
        self.rect = self.image.get_rect()
        self.speed = speed

    def update(self):


        self.rect.y += self.speed   

 

 

 

精灵组:

def __init__(self,*sprites):

  update() 让组中所有精灵调用其update()方法

 

   精灵组.draw(surface)将组中所有精灵的图像按rect位置绘制到surface上

 

   sprites 返回所有精灵列表

 

   add(sprites) 向组中添加精灵

 

  

 

posted @ 2018-12-24 15:14  greenfan  阅读(156)  评论(0)    收藏  举报