申明:原创不易,未经许可,不得转载
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()
好了,咱们看到小方块曾经显示进去了!下一集咱们让小方块动起来!