主要内容 #
- 
- 游戏类矩形框绘制函数模块
- 游戏类得分和时间函数模块
 
1.游戏类矩形框绘制函数模块 #
该模块实现的功能为:绘出界面中的8*8的矩形框。
该部分代码如下:
    def drawBlock(self, block, color=(255, 0, 255), size=4):
        '''
        画矩形block框
        '''
        pygame.draw.rect(self.screen, color, block, size)
    def drawGrids(self):
        '''
        游戏界面的网格绘制
        '''
        for x in range(NUMGRID):
            for y in range(NUMGRID):
                rect = pygame.Rect((XMARGIN + x * GRIDSIZE, YMARGIN + y * GRIDSIZE, GRIDSIZE, GRIDSIZE))
                self.drawBlock(rect, color=(0, 0, 255), size=1)
将以上所有代码加入到游戏类代码中,作为成员函数。
接下来需要在各个模块中添加和修改代码,具体如下。
    # 在gemGame类中的start()函数中找到如下代码
	self.gems_group.draw(self.screen)
    # 在该句代码后增加如下代码
    self.drawGrids()  # 绘出游戏网格
# 在gemGame类中的start()函数中找到如下代码
self.screen.fill((135, 206, 235))
# 在该句代码后增加如下代码
if gem_selected_xy:
    self.drawBlock(self.getGemByPos(*gem_selected_xy).rect)
全部修改完之后,运行整体代码,看整体效果,可以看出矩形框已经绘制出。
2.游戏类得分和时间函数模块 #
该模块实现的功能为:在界面上端绘出得分模块和时间倒数模块
代码如下所示:
    def showRemainingTime(self):
        '''
        显示游戏倒计时时间函数
        '''
        remaining_time_render = self.font.render('CountDown: %ss' % str(self.remaining_time), 1, (85, 65, 0))
        rect = remaining_time_render.get_rect()
        rect.left, rect.top = (WIDTH - 201, 6)
        self.screen.blit(remaining_time_render, rect)
    def drawScore(self):
        '''
        显示得分函数
        '''
        score_render = self.font.render('SCORE:' + str(self.score), 1, (85, 65, 0))
        rect = score_render.get_rect()
        rect.left, rect.top = (10, 6)
        self.screen.blit(score_render, rect)
将以上所有代码加入到上一课创建的项目文件中(该代码请置放在游戏类中,作为成员函数)。
接下来需要在各个模块中添加和修改代码,具体如下。
    # 在gemGame类中的start()函数中找到如下代码
	self.remaining_time -= (int(time.time()) - time_pre)  # 剩余时间
    time_pre = int(time.time())
    # 在该句代码后增加如下代码
    self.showRemainingTime()
    self.drawScore()
全部修改完之后,运行整体代码,看整体效果。
小结 #
- 本节主要介绍了消消乐游戏的矩形框绘制模块和得分与时间展示模块。