python制作小游戏之二2048第二部分

本文是Python开发2048小游戏的第二部分,介绍了如何添加显示文字的功能,创建重启按钮,并处理鼠标点击事件。通过编写函数处理游戏界面的更新和按键操作,包括检查按键按下后的二维列表数据变化。目前实现了基础的游戏功能,后续将继续完善。
摘要由CSDN通过智能技术生成

紧接第一部分。

上一部分已经做到把最开始的2048的游戏界面绘制出来了,然后再开始2048游戏控制部分算法编写之前,先增加一点界面显示以及重启按钮。

首先编写一个显示文字的函数,可以通过这个函数控制文本显示的位置,内容,以及文字底部背景颜色。

#显示文本文字在屏幕上
def make_text(text, color, bg_color, top, left):
    text_surf = basic_font.render(text, True, color, bg_color)
    text_rect = text_surf.get_rect()
    text_rect.topleft = (top, left)
    return text_surf, text_rect

在主程序,获取棋盘board二维列表代码之上,加入这段代码,因为重启按钮涉及到鼠标点击和按钮重合的问题,所以按钮的框架,以及按钮本身需要单独创建。

reset_surf, reset_rect = make_text('Reset', text_color, tile_color, screen_width - 120, screen_height - 90)

修改绘制函数内容,增加显示游戏名称以及显示重启按钮操作。

#绘制游戏背景面板,此处开始根据board中的内容绘制游戏主界面了,一开始绘制的是已经完成好的界面
def draw_board(board, message):
    display.fill(bg_color)
    if message:
        text_surf, text_rect = make_text(message, message_color, bg_color, 0, 0)
        display.blit(text_surf, text_rect)
    for x in range(board_width):
        for y in range(board_height):
            if board[x][y]:
                draw_tile(x, y, board[x][y])
            else:
                draw_tile(x, y, '')

    # 绘制游戏边框
    left, top = get_left_top_of_tile(0, 0)
    width = board_width * tile_size
    height = board_height * tile_size
    # 边框不要和滑片重合,所以稍微往四周挪动一点距离
    pygame.draw.rect(display, border_color, (left-11, top-11, width+16, height+16), 4)
    # 绘制三个按钮,其实是三个文字显示而已
    display.blit(reset_surf, reset_rect)

然后修改一下draw_board(main_b

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值