申明: 原创不易,未经许可,不得转载
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__()
在构造函数外面,咱们用pygame
的Surface
函数生成一个宽为60像素,高为30像素的小方块,给这个小方块取个名,叫self.image
。因为屏幕的色彩是彩色的,所以咱们要给小方块填充点不一样的色彩,用self.image.fill
函数给小方块填充红色。通过self.image
的get_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()
好了,咱们看到小方块曾经显示进去了!下一集咱们让小方块动起来!