Pygame中Sprite类的使用1

在Pygame中有一个名为sprite的模块,又叫做“精灵”模块。通过该模块中的Sprite类可以实现图形的绘制、移动以及碰撞检测等功能。

1 Sprite类的编写

例如,要绘制“植物大战僵尸”中的僵尸,就可以创建一个新类,让该类继承自sprite模块中的Sprite类,代码如下所示。

class Zombie(pygame.sprite.Sprite):

在绘制僵尸图形时,需要僵尸图片以及该图片的位置。因此需要在Zombie类的__init__()函数中对这两个属性进行设置。

1.1 __init__()函数

1.1.1 设置僵尸图片

在Zombie类的__init__()函数中,使用image模块的load()函数导入指定的图片。

def __init__(self, x, y):
        super().__init__()
        self.image = pygame.image.load('1.png')

可以看出,Zombie类的__init__()函数包含了三个参数,参数x和参数y分别表示僵尸图形所处的x轴位置和y轴位置。在__init__()函数中,首先调用了其父类,也就是Sprite类的__init__()函数,之后为Zombie类添加image属性,该属性即为导入的僵尸图片。

需要注意的是,此时load()函数的参数是图片文件的相对路径,也就是图片和代码文件在同一路径下,也可以为load()函数指定图片的绝对路径。

1.1.2 设置僵尸图片的位置

接下来,在__init__()函数中,为Zombie类添加rect、x和y三个属性,代码如下所示:

self.rect = self.image.get_rect()
self.rect.x = x
self.rect.y = y

其中,rect表示图片左上角所处的坐标,rect.x表示横坐标,rect.y表示纵坐标。也就是说所,在定义Zombie类的实例时,需要指定该图片所处的位置。

1.2 绘制僵尸图片

定义Zombie类的draw()方法来绘制僵尸图片,代码如下所示。

def draw(self, scree):
     screen.blit(self.image, self.rect)

其中,draw的screen参数是Surface类的实例,表示创建的屏幕。通过Surface类的blit()方法将指定的图片画到指定的位置处。

相关链接2:

Pygame显示文字_棉猴的博客-CSDN博客

1.3 僵尸图片的更新

定义Zombie类的update()方法将僵尸图片更新到屏幕中,代码如下所示:

def update(self):
   pygame.display.update()

2 屏幕的创建

使用如下代码创建显示僵尸的屏幕。

pygame.init()
screen = pygame.display.set_mode((400, 500))
screen.fill((255,255,255))

相关链接3:

Pygame显示文字_棉猴的博客-CSDN博客

3 在屏幕右上方绘制僵尸

使用如下代码在创建好的屏幕screen上的右上方绘制僵尸。

z1 = Zombie(350, 80)
z1.draw(screen)
z1.update()

其中,z1是Zombie类的实例,坐标(350,80)表示僵尸位于屏幕右上方,之后调用Zombie类的draw()方法绘制僵尸,最后调用Zombie类的update()方法在屏幕上显示僵尸。效果如图1所示。

图1 僵尸的显示

猜你喜欢

转载自blog.csdn.net/hou09tian/article/details/132793953
今日推荐