跳至正文
View Categories

1 min read

主要内容 #

    1. 数字精灵组模块
    2. 运算符精灵组模块
    3. 按钮精灵组模块

1.数字精灵组模块 #

该模块实现的功能为:定义构建至多4个数字的按钮精灵组模块。
该部分代码如下:

def getNumberSpritesGroup(numbers):
    '''
    获取数字精灵组
    '''
    number_sprites_group = pygame.sprite.Group()
    for idx, number in enumerate(numbers):
        args = (*NUMBERCARD_POSITIONS[idx], str(number), NUMBERFONT, NUMBERFONT_COLORS, NUMBERCARD_COLORS, str(number))
        number_sprites_group.add(Card(*args))
    return number_sprites_group

将以上所有代码加入到main()函数的上方,请注意该函数不是某个类的成员函数,而是普通函数。

接下来需要在各个模块中添加和修改代码,具体如下。

    # 在maint()函数中找到如下代码
	# 游戏主循环
    clock = pygame.time.Clock()

    # 在该句代码上方增加如下代码
    # 精灵组
    # --数字
    number_sprites_group = getNumberSpritesGroup(game24_gen.numbers_now)
# 在main()函数中找到如下代码
screen.fill(AZURE)

# 在该句代码后增加如下代码
for each in number_sprites_group:
    each.draw(screen, pygame.mouse.get_pos())  # 画出数字精灵

全部修改完之后,运行整体代码,看整体效果,可以看出四个数字已经在屏幕中绘制出。

2.运算符精灵组模块 #

该模块实现的功能为:定义构建4个运算符的按钮精灵组模块。
代码如下所示:

def getOperatorSpritesGroup(operators):
    '''
    获取运算符精灵组
    '''
    operator_sprites_group = pygame.sprite.Group()
    for idx, operator in enumerate(operators):
        args = (*OPERATORCARD_POSITIONS[idx], str(operator), OPERATORFONT, OPREATORFONT_COLORS, OPERATORCARD_COLORS, str(operator))
        operator_sprites_group.add(Card(*args))
    return operator_sprites_group

将以上所有代码加入到main()函数的上方,请注意该函数不是某个类的成员函数,而是普通函数。

接下来需要在各个模块中添加和修改代码,具体如下。

    # 在main()函数中找到如下代码
	# 游戏主循环
    clock = pygame.time.Clock()

    # 在该句代码上方增加如下代码
    # --运算符
    operator_sprites_group = getOperatorSpritesGroup(OPREATORS)

# 在main()函数中找到如下代码
for each in number_sprites_group:
    each.draw(screen, pygame.mouse.get_pos())  # 画出数字精灵

# 在该句代码后增加如下代码
for each in operator_sprites_group:
    each.draw(screen, pygame.mouse.get_pos())  # 画出操作符精灵

全部修改完之后,运行整体代码,看整体效果,可以看出四个运算符已经在屏幕中绘制出。

3.按钮精灵组模块 #

该模块实现的功能为:定义构建3个计算功能的的按钮精灵组模块。
代码如下所示:

def getButtonSpritesGroup(buttons):
    '''
    获取按钮精灵组
    '''
    button_sprites_group = pygame.sprite.Group()
    for idx, button in enumerate(buttons):
        args = (*BUTTONCARD_POSITIONS[idx], str(button), BUTTONFONT, BUTTONFONT_COLORS, BUTTONCARD_COLORS, str(button))
        button_sprites_group.add(Button(*args))
    return button_sprites_group

将以上所有代码加入到main()函数的上方,请注意该函数不是某个类的成员函数,而是普通函数。

接下来需要在各个模块中添加和修改代码,具体如下。

    # 在maint()函数中找到如下代码
	# 游戏主循环
    clock = pygame.time.Clock()

    # 在该句代码上方增加如下代码
    # --按钮
    button_sprites_group = getButtonSpritesGroup(BUTTONS)
# 在main()函数中找到如下代码
for each in operator_sprites_group:
    each.draw(screen, pygame.mouse.get_pos())  # 画出操作符精灵

# 在该句代码后增加如下代码
for each in button_sprites_group:
    each.draw(screen, pygame.mouse.get_pos())  # 画出按钮精灵

全部修改完之后,运行整体代码,看整体效果,可以看出三个功能已经在屏幕中绘制出。

小结 #

  • 本节主要介绍了24点游戏的数字,运算符和功能按钮精灵组的构建模块。