1
头图

声明: 原创不易,未经许可,不得转载

xa

0.前言

hello,大家好,我是带你们一起写游戏的猫姐。
今天我们接着做小朋友吃蘑菇的小游戏!在第一集代码的基础上,我们来实现一个小方块的显示,效果是这样的。

pygame基本框架:

代码显示

猫姐再强调一下:上面的代码虽然只有10行,却是pygame这个框架的精髓,不管你的游戏是简单还是复杂,都是建立在这个代码的基础上,所以大家一定要认真领会这10行代码的意思。

1.定义一个方块类

我们先来实现方块的显示,这里稍微要一点面向对象编程的知识,我们用class定义一个类,类名叫Player,在类名的括号里面,传入pygame.sprite.Sprite这个类,让Player继承精灵。然后在类里,实现我们自己的构造函数def __init__(self),用super函数来调用精灵父类的构造函数。

class Player(pygame.sprite.Sprite):
    def __init__(self):
        super(Player, self).__init__()

在构造函数里面,我们用pygameSurface函数生成一个宽为60像素,高为30像素的小方块,给这个小方块取个名,叫self.image。因为屏幕的颜色是黑色的,所以我们要给小方块填充点不一样的颜色,用self.image.fill函数给小方块填充白色。通过self.imageget_rect函数可以得到小方块的矩形区域,在括号里面,需要设置矩形区域的显示位置,也就是最后程序运行起来后,小方块最初在哪里显示。在这里,我们让小方块在屏幕的中心显示,所以它的左顶点即x的坐标为left=WIDTH//2,左顶点y的坐标为top=HEIGHT//2

class Player(pygame.sprite.Sprite):
    def __init__(self):
        super(Player, self).__init__()
        self.image = pygame.Surface((60, 30))
        self.image.fill("white")
        self.rect = self.image.get_rect(left=WIDTH//2, top=HEIGHT//2)

现在程序运行起来没有任何效果,因为没有将图片绘制到游戏窗口。接下来,我们定义一个update函数,将小方块绘制出来。我们调用screen.blit函数,括号里面传入的是要显示的图片名称self.image,以及图片要在哪里显示。

def update(self):
    screen.blit(self.image, self.rect)

1.1 方块的显示

我们现在将小方块显示在游戏窗口,我们在while循环外面,生成一个player对象,然后在while循环里面,调用player对象的update函数,绘制出小方块!我们运行程序看看效果!

# 实例化Player对象
player = Player()
while True:
    for event in pygame.event.get():
        if event.type == QUIT:
            sys.exit()
    player.update()
    pygame.display.update()

好了,我们看到小方块已经显示出来了!下一集我们让小方块动起来!


猫姐_游戏编程
56 声望17 粉丝

😸猫姐,211硕士,定居成都的荆州人,5年IT生涯,教大家做益智小游戏,快乐学编程