pygame(十五)拼图游戏

本文介绍了如何使用pygame库创建一款拼图游戏,包括截取目标矩形图片、生成子图片、打乱顺序、响应鼠标点击、实现移动方法以及判断胜利的逻辑。详细解析了各个步骤的代码实现,并探讨了游戏的挑战性和潜在的拓展模式。
摘要由CSDN通过智能技术生成

pygame(十五)拼图游戏

前情提要

前情提要

本节提要

本节提要

内容详情

截取目标矩形图片

上节课,我们学到一个裁剪图片的方法: chop()
这个方法是将原截掉一个十字形的位置,将剩下的四个矩形合并成一个新的矩形图片.这样非常不利于我们截取图片.
因此,我们将这个方法进行改进,变成截取矩形位置的图片的方法rect_chop()

代码
def rect_chop(img:pygame.Surface, rect:pygame.Rect):
    '''截取指定位置的图形'''
    result_surface = pygame.transform.chop(img, (0, 0, rect.left, rect.top))
    rect = pygame.Rect(0, 0, rect.width, rect.height)
    result_surface = pygame.transform.chop(result_surface, (rect.width, rect.height, result_surface.get_width(), result_surface.get_height()))
    return result_surface
代码解析

根据我们chop()方法的逻辑,任何的图片,都是裁掉一个十字形的内容
因此,根据这个逻辑,我们先裁掉上边与左边

result_surface = pygame.transform.chop(img, (0, 0, rect.left, rect.top))

再将裁取的图片,再裁掉右边与下边

result_surface = pygame.transform.chop(result_surface, (rect.width, rect.height, result_surface.get_width(), result_surface.get_height()))

生成子图片

将一个游戏图片,截成九个子图片

代码

def creat_imgs(image):
imgs = []
pos_rects = []
for i in range(3):
for j in r

  • 8
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱编程的章老师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值