怎么做刮刮乐而且又好玩又简单,怎样做刮刮乐好看又简单

首页 > 实用技巧 > 作者:YD1662023-11-05 07:36:31

怎么做刮刮乐而且又好玩又简单,怎样做刮刮乐好看又简单(1)

文 | 野客

来源:Python 技术「ID: pythonall」

怎么做刮刮乐而且又好玩又简单,怎样做刮刮乐好看又简单(2)

刮刮卡通常指卡上的一种覆盖数字和字母密码等的涂层,通常包括纸质和电子两种类型,刮刮卡在市场上有着比较广泛的应用,我们见到最多的应该是各类抽奖活动了,本文我们使用 Python 来做一个简单的抽奖刮刮卡。

实现

首先,我们弄几张图片做底板,如下所示:

怎么做刮刮乐而且又好玩又简单,怎样做刮刮乐好看又简单(3)

从图中我们可以看到底图包括:一等奖、二等奖、谢谢惠顾三种,如果我们参与过刮刮卡抽奖的话,会发现几乎刮开都是谢谢惠顾之类的,也就是有个概率的问题,这里我们也简单设置一下,一等奖放一张、二等奖放两张、谢谢惠顾放三张,生成刮刮卡时随机使用底图就可以了。

实现刮刮卡,我们主要用到是 pygame 模块,之前做小游戏时已经用到过几次了,大家应该都比较熟悉,下面看一下具体实现。

我们先定义一下常量,如:路径、图片类型、颜色等,代码实现如下:

path='prize' ptype=['jpg','png','bmp','JPG','PNG','BMP'] #窗口大小 screen_size=(600,400) white=(255,255,255,20) gray=(192,192,192)

然后创建一个窗口,代码实现如下:

pygame.init() pygame.mouse.set_cursor(*pygame.cursors.diamond) screen=pygame.display.set_mode(screen_size) pygame.display.set_caption('刮一刮抽奖')

接着从所有底图中随机取出一张绑定到窗口,代码实现如下:

filenames=os.listdir(path) filenames=[fforfinfilenamesiff.split('.')[-1]inptype] imgpath=os.path.join(path,random.choice(filenames)) image_used=pygame.transform.scale(pygame.image.load(imgpath),screen_size) screen.blit(image_used,(0,0))

再接着做一个灰色的图层覆盖到底图上,代码实现如下:

surface=pygame.Surface(screen_size).convert_alpha() surface.fill(gray) screen.blit(surface,(0,0))

最后,我们定义一下鼠标事件,在鼠标移动经过的地方,将图层置为透明,漏出底图,代码实现如下:

mouse_event=pygame.mouse.get_pressed() ifmouse_event[0]: pygame.draw.circle(surface,white,pygame.mouse.get_pos(),40) elifmouse_event[-1]: surface.fill(gray) image_used=pygame.transform.scale(pygame.image.load(imgpath),screen_size)

一起来看一下实现效果:

怎么做刮刮乐而且又好玩又简单,怎样做刮刮乐好看又简单(4)

是不是有内味了

怎么做刮刮乐而且又好玩又简单,怎样做刮刮乐好看又简单(5)

总结

本文我们使用 Python 实现了一个简单的刮刮卡,有兴趣的话,可以对一些实现细节、效果等做进一步完善。

源码:https://github.com/JustDoPython/python-examples/tree/master/yeke/py-scratch


怎么做刮刮乐而且又好玩又简单,怎样做刮刮乐好看又简单(6)

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.