用python+pygame模块实现一波刮刮卡效果,图像处理之路(附源码)
Posted 编程界的小胖子
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用python+pygame模块实现一波刮刮卡效果,图像处理之路(附源码)相关的知识,希望对你有一定的参考价值。
利用python模拟了刮开刮刮卡效果,让我们愉快地开始吧~
效果展示
开发工具
Python版本: 3.6.4
相关模块:
以及一些python自带的模块。
环境搭建
安装Python并添加到环境变量,pip安装需要的相关模块即可。
原理简介
原理其实很简单。首先从文件夹中随机读取一张图片:
def readImageRandomly():
filenames = os.listdir(IMAGEDIR)
filenames = [f for f in filenames if f.split('.')[-1] in SUPPORTEXTS]
imgpath = os.path.join(IMAGEDIR, random.choice(filenames))
return pygame.transform.scale(pygame.image.load(imgpath), SCREENSIZE)
复制代码
然后将图片绑定到pygame的屏幕上:
screen.blit(image_used, (0, 0))
复制代码
接着定义一个surface,并设置为灰色,覆盖在图片上,这样图片一开始是看不到的:
surface = pygame.Surface(SCREENSIZE).convert_alpha()
surface.fill(GRAY)
screen.blit(surface, (0, 0))
复制代码
当检测到我们按下鼠标左键并在屏幕内划过时,将划过鼠标的那片surface区域设置为透明的白色,从而使得其下方的图片可见:
mouse_event_flags = pygame.mouse.get_pressed()
if mouse_event_flags[0]:
pygame.draw.circle(surface, WHITE, pygame.mouse.get_pos(), 40)
elif mouse_event_flags[-1]:
surface.fill(GRAY)
image_used = readImageRandomly()
复制代码
当然,为了方便切换图片,我们加了一个点击鼠标右键可以随机重新载入一张图片的功能。组织一下代码,使它可以正常运行:
def main():
pygame.init()
pygame.mixer.init()
pygame.mixer.music.load(BGMPATH)
pygame.mixer.music.play(-1, 0.0)
pygame.mouse.set_cursor(*pygame.cursors.diamond)
screen = pygame.display.set_mode(SCREENSIZE)
pygame.display.set_caption('刮刮乐——卫星:ilove-python')
surface = pygame.Surface(SCREENSIZE).convert_alpha()
surface.fill(GRAY)
image_used = readImageRandomly()
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit(-1)
mouse_event_flags = pygame.mouse.get_pressed()
if mouse_event_flags[0]:
pygame.draw.circle(surface, WHITE, pygame.mouse.get_pos(), 40)
elif mouse_event_flags[-1]:
surface.fill(GRAY)
image_used = readImageRandomly()
screen.blit(image_used, (0, 0))
screen.blit(surface, (0, 0))
pygame.display.update()
复制代码
文章到这里就结束了,感谢你的观看,Python图像特效,下个分享Python实现抖音晃眼睛特效。
为了感谢读者们,我想把我最近收藏的一些编程干货分享给大家,回馈每一个读者,希望能帮到你们。
干货主要有:
① 2000多本Python电子书(主流和经典的书籍应该都有了)
② Python标准库资料(最全中文版)
③ 项目源码(四五十个有趣且经典的练手项目及源码)
④ Python基础入门、爬虫、web开发、大数据分析方面的视频(适合小白学习)
⑤ Python学习路线图(告别不入流的学习)
以上是关于用python+pygame模块实现一波刮刮卡效果,图像处理之路(附源码)的主要内容,如果未能解决你的问题,请参考以下文章
Python游戏开发,pygame模块,Python实现过迷宫小游戏
Python实战项目做一个 刮刮乐 案例,一不小心....着实惊艳到我了。
用Python3 的pygame模块实现塔防小游戏,女神看了都称厉害
Python游戏开发,pygame模块,Python实现过迷宫小游戏