参考:(https://gitbook.cn/gitchat/column/5b1a31bc862a01660e35955c/topic/5b1a867e3d723c686c3101c7)
2019-06-17
任务:绘制小方块(1.main()中画方块;2.定义画方块函数)
1.main()中画方块
# 在之前定义的画游戏区域边界与网格语句下面,加上画小方块语句(可以把画网格函数整合到画边界函数中去,简化程序)
draw_game_area(screen)
draw_grid_line(screen)
draw_cell(screen, GAME_AREA_LEFT, GAME_AREA_TOP)
新定义的draw_cell函数有三个参数,第二与第三分别为画小方块的左上角所在点的横、纵坐标
小方块这样画(def draw_cell()中)
def draw_cell(screen, left, top):
cell_left_top = (left, top)
cell_width_height = (CELL_WIDTH, CELL_WIDTH)
cell_rect = pygame.Rect(cell_left_top, cell_width_height)
pygame.draw.rect(screen, CELL_COLOR, cell_rect)
注意:CELL_COLOR写在def main()前的常量里
CELL_COLOR = (100, 100, 100)
对于以上代码的理解:
为了方便改变小方块的位置,draw_cell()有三个参数,后两个确定其在哪,比如:
draw_cell(screen, GAME_AREA_LEFT, GAME_AREA_TOP)
小方块在游戏区域左上角第一位:
图1.jpg
又如:
draw_cell(screen, GAME_AREA_LEFT + CELL_WIDTH * 4, GAME_AREA_TOP)
小方块在第一行第五列的位置:
图2.jpg
cell_rect调用pygame.Rect()生成矩形对象,两个参数分别确定矩形左上角坐标、边长
所以有了上面cell_left_top与cell _width_height的定义
cell_left_top定义元祖类型(left, top),为左上角点的(横, 纵)
cell_width_height定义方块的宽、高
最后调用pygame.draw.rect(),三个参数分别为:screen, CELL_COLOR, cell_rect 意思是在screen上用CELL_COLOR填充cell_rect描述的矩形对象。