乐趣区

关于python:02游戏主角就长这样小方块的显示面向对象编程

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

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

好了,咱们看到小方块曾经显示进去了!下一集咱们让小方块动起来!

退出移动版