原标题:Python 表白?别傻了,女神是拿来撩的!

作者 | 小F

责编 | 伍杏玲

自古真情留不住,唯有套路得人心。

今天是情人节,程序员如何撩动心仪女神的心?当然要用程序员的方法了!

这马上给大家带来一个Python的小套路:利用Python的pygame库,生成一个套路神器。

无套路版本

无套路版本和抖音上的一些视频差不多,就是点不了拒绝按钮!是不是很实用捏?

详细代码如下:

importpygame

importrandom

importsys

# 根据背景图大小,设置游戏屏幕大小

WIDTH, HEIGHT = 1024, 576

# 不全屏

screen = pygame.display.set_mode((WIDTH, HEIGHT), 0, 32)

# 全屏

# screen = pygame.display.set_mode((WIDTH, HEIGHT), pygame.FULLSCREEN, 32)

pygame.display.set_caption('小姐姐,你的快递到了。')

# 添加文本信息

deftitle(text, screen, scale, color=(0, 0, 0)):

font = pygame.font.SysFont('SimHei', 27)

textRender = font.render(text, True, color)

# 初始化文本的坐标

screen.blit(textRender, (WIDTH / scale[0], HEIGHT / scale[1]))

# 按钮

defbutton(text, x, y, w, h, color, screen):

pygame.draw.rect(screen, color, (x, y, w, h))

font = pygame.font.SysFont('SimHei', 20)

textRender = font.render(text, True, (255, 255, 255))

textRect = textRender.get_rect()

textRect.center = ((x+w/2), (y+h/2))

screen.blit(textRender, textRect)

# 生成随机的位置坐标

defget_random_pos():

x, y = random.randint(10, 600), random.randint(20, 500)

returnx, y

# 点击答应按钮后显示的页面

defshow_like_interface(screen):

screen.fill((255, 255, 255))

background1 = pygame.image.load('214_1.jpg').convert()

screen.blit(background1, (0, 0))

pygame.display.update()

whileTrue:

forevent inpygame.event.get():

ifevent.type == pygame.QUIT:

sys.exit()

defmain():

pygame.init()

clock = pygame.time.Clock()

# 添加背景音乐

pygame.mixer.music.load('214_1.mp3')

pygame.mixer.music.play(-1, 20)

pygame.mixer.music.set_volume(0.5)

# 设置不同意按钮属性

unlike_pos_x = 130

unlike_pos_y = 375

unlike_pos_width = 450

unlike_pos_height = 55

unlike_color = (115, 76, 243)

# 设置同意按钮属性

like_pos_x = 130

like_pos_y = 280

like_pos_width = 450

like_pos_height = 55

like_color = (115, 76, 243)

running = True

whilerunning:

# 填充窗口

screen.fill((255, 255, 255))

# 添加背景图

background = pygame.image.load('214_2.jpg').convert()

screen.blit(background, (0, 0))

# 获取鼠标坐标

pos = pygame.mouse.get_pos()

# 判断鼠标位置,不同意时,按钮不断变化

ifpos[0] < unlike_pos_x + unlike_pos_width + 5andpos[0] > unlike_pos_x - 5andpos[1] < unlike_pos_y + unlike_pos_height + 5andpos[1] > unlike_pos_y - 5:

whileTrue:

unlike_pos_x, unlike_pos_y = get_random_pos()

ifpos[0] < unlike_pos_x + unlike_pos_width + 5andpos[0] > unlike_pos_x - 5andpos[1] < unlike_pos_y + unlike_pos_height + 5andpos[1] > unlike_pos_y - 5:

continue

break

# 设置标题及按钮文本信息

title('1.如果有一天我向你表白,你会怎么样?', screen, scale=[8, 3])

button('A.你小子终于开窍了,你敢表白我就敢答应!', like_pos_x, like_pos_y, like_pos_width, like_pos_height, like_color, screen)

button('B.我拿你当闺蜜,你居然想睡我!果断拒绝!', unlike_pos_x, unlike_pos_y, unlike_pos_width, unlike_pos_height, unlike_color, screen)

# 设置关闭选项属性

forevent inpygame.event.get():

ifevent.type == pygame.QUIT:

sys.exit()

# 当鼠标点击同意按钮后,跳转结束页面

ifpos[0] < like_pos_x + like_pos_width + 5andpos[0] > like_pos_x - 5andpos[1] < like_pos_y + like_pos_height + 5andpos[1] > like_pos_y - 5:

ifevent.type == pygame.MOUSEBUTTONDOWN:

show_like_interface(screen)

pygame.display.flip()

pygame.display.update()

clock.tick(60)

main()

运行代码,效果如下。

代码里是设置有音乐的,所以运行代码后,会有背景音乐。这里因为我的电脑太渣,录屏下的音质特别差,所以选择录制一个无声的视频,大家将就着看吧。

套路版本

或许上面的那个版本只会让小姐姐觉得你很可恨,毕竟强迫症患者有点多,愣是不让人点,估摸着要挨小姐姐的揍。所以便有了下面这个套路版本,详细代码如下:

importpygame

importrandom

importsys

# 根据背景图大小,设置游戏屏幕大小

WIDTH, HEIGHT = 1024, 576

screen = pygame.display.set_mode((WIDTH, HEIGHT), 0, 32)

pygame.display.set_caption('小姐姐,你的快递到了。')

# 添加文本信息

deftitle(text, screen, scale, color=(0, 0, 0)):

font = pygame.font.SysFont('SimHei', 27)

textRender = font.render(text, True, color)

# 初始化文字的坐标

screen.blit(textRender, (WIDTH / scale[0], HEIGHT / scale[1]))

# 按钮

defbutton(text, x, y, w, h, color, screen, color_text):

pygame.draw.rect(screen, color, (x, y, w, h))

font = pygame.font.SysFont('SimHei', 20)

textRender = font.render(text, True, color_text)

textRect = textRender.get_rect()

textRect.center = ((x+w/2), (y+h/2))

screen.blit(textRender, textRect)

# 生成随机的位置坐标

defget_random_pos():

x, y = random.randint(20, 620), random.randint(20, 460)

returnx, y

# 点击答应后显示的页面

defshow_like_interface(screen):

screen.fill((255, 255, 255))

background1 = pygame.image.load('214_1.jpg').convert()

screen.blit(background1, (0, 0))

pygame.display.update()

whileTrue:

forevent inpygame.event.get():

ifevent.type == pygame.QUIT:

sys.exit()

# 点击不答应按钮后显示的页面

defshow_unlike_interface(screen):

screen.fill((255, 255, 255))

background_1 = pygame.image.load('214_3.jpg').convert()

screen.blit(background_1, (0, 0))

pygame.display.update()

whileTrue:

forevent inpygame.event.get():

ifevent.type == pygame.QUIT:

sys.exit()

defmain():

num = 0

pygame.init()

clock = pygame.time.Clock()

# 添加背景音乐

pygame.mixer.music.load('214_2.mp3')

pygame.mixer.music.play(-1, 40)

pygame.mixer.music.set_volume(0.5)

# 设置不同意按钮属性

unlike_pos_x = 130

unlike_pos_y = 375

unlike_pos_width = 450

unlike_pos_height = 55

unlike_color = (115, 76, 243)

# 设置同意按钮属性

like_pos_x = 130

like_pos_y = 280

like_pos_width = 450

like_pos_height = 55

like_color = (115, 76, 243)

running = True

whilerunning:

# 填充窗口

screen.fill((255, 255, 255))

# 添加背景图

background = pygame.image.load('214_2.jpg').convert()

screen.blit(background, (0, 0))

# 获取鼠标坐标

pos = pygame.mouse.get_pos()

ifpos[0] < unlike_pos_x + unlike_pos_width + 5andpos[0] > unlike_pos_x - 5andpos[1] < unlike_pos_y + unlike_pos_height + 5andpos[1] > unlike_pos_y - 5:

whileTrue:

ifnum > 5:

break

num += 1

unlike_pos_x, unlike_pos_y = get_random_pos()

ifpos[0] < unlike_pos_x + unlike_pos_width + 5andpos[0] > unlike_pos_x - 5andpos[1] < unlike_pos_y + unlike_pos_height + 5andpos[1] > unlike_pos_y - 5:

continue

break

# 设置标题及按钮文本信息

title('1.如果有一天我向你表白,你会怎么样?', screen, scale=[8, 3])

button('A.你小子终于开窍了,你敢表白我就敢答应!', like_pos_x, like_pos_y, like_pos_width, like_pos_height, like_color, screen, (255, 255, 255))

# 设置小套路文本

ifnum < 6:

button('B.我拿你当闺蜜,你居然想睡我!果断拒绝!', unlike_pos_x, unlike_pos_y, unlike_pos_width, unlike_pos_height, unlike_color, screen, (255, 255, 255))

ifnum > 5:

button('B. 我拿你当闺蜜,你居然想睡我!果断答应!', unlike_pos_x, unlike_pos_y, unlike_pos_width, unlike_pos_height, unlike_color, screen, (255, 255, 255))

# 设置套路文本

ifnum == 1:

button('操作提示:请直接点击答案,切勿手抖!', unlike_pos_x, unlike_pos_y - 50, unlike_pos_width, unlike_pos_height, (255, 255, 255), screen, (192, 0, 0))

ifnum == 2:

button('咋又抖了?女神是不是哪里不舒服?', unlike_pos_x, unlike_pos_y - 50, unlike_pos_width, unlike_pos_height, (255, 255, 255), screen, (192, 0, 0))

ifnum == 3:

button('呀!看来这病得还不轻啊!', unlike_pos_x, unlike_pos_y - 50, unlike_pos_width, unlike_pos_height, (255, 255, 255), screen, (192, 0, 0))

ifnum == 4:

button('生了病也没人照料,心疼……', unlike_pos_x, unlike_pos_y - 50, unlike_pos_width, unlike_pos_height, (255, 255, 255), screen, (192, 0, 0))

ifnum == 5:

button('好险!差点儿就点到了呢!', unlike_pos_x, unlike_pos_y - 50, unlike_pos_width, unlike_pos_height, (255, 255, 255), screen, (192, 0, 0))

ifnum == 6:

button('哎,算了,不躲了,你选吧', unlike_pos_x, unlike_pos_y - 50, unlike_pos_width, unlike_pos_height, (255, 255, 255), screen, (192, 0, 0))

# 点击套路按钮

ifnum > 5:

ifpos[0] < unlike_pos_x + unlike_pos_width + 5andpos[0] > unlike_pos_x - 5andpos[1] < unlike_pos_y + unlike_pos_height + 5andpos[1] > unlike_pos_y - 5:

ifevent.type == pygame.MOUSEBUTTONDOWN:

show_unlike_interface(screen)

forevent inpygame.event.get():

ifevent.type == pygame.QUIT:

sys.exit()

# 点击同意按钮

ifpos[0] < like_pos_x + like_pos_width + 5andpos[0] > like_pos_x - 5andpos[1] < like_pos_y + like_pos_height + 5andpos[1] > like_pos_y - 5:

ifevent.type == pygame.MOUSEBUTTONDOWN:

show_like_interface(screen)

pygame.display.flip()

pygame.display.update()

clock.tick(60)

main()

效果如下:

打包程序

看了上面一行行的代码,我们能直接交给女神吗?那样无疑是自取灭亡。

所以使用pyinstaller库将代码、图片及音乐素材打包成exe文件。

直接点击love.exe程序,即可运行。

总结

小姐姐,你的快递到了。

什么快递?

我的一厢情愿。

相关的图片,音乐、代码以及打包程序已上传公众号,菜单栏加微信即可获取。

免责声明:文章广告为微信自动匹配,与本平台无关,如遇假冒伪劣请联系微信进行举报。

# 欢迎来评论区留言 #

你打算情人节送什么礼物呢?

【完】

☞ 百度发力医疗器械?回应称为了公益捐赠返回搜狐,查看更多

责任编辑:

python表白源代码加音乐_Python 表白?别傻了,女神是拿来撩的!相关推荐

  1. python表白源代码加音乐_python炫酷烟花表白源代码

    天天敲代码的朋友,有没有想过代码也可以变得很酷炫又浪漫?今天就教大家用Python模拟出绽放的烟花,工作之余也可以随时让程序为自己放一场烟花秀. python炫酷烟花表白源代码 这个有趣的小项目并不复 ...

  2. python表白源代码加音乐_python抖音表白程序源代码

    import sys import random import pygame from pygame.locals import * WIDTH, HEIGHT = 640, 480 BACKGROU ...

  3. python输出中文加数字_python处理“#”开头加数字的html字符方法

    python如何处理""开头加数字的html字符,比如:风水这类数据. 用python抓取数据时,有时会遇到想要数据是以""开头加数字的字符,比如图中所示的这些 ...

  4. python爬取虾米音乐_Python爬取620首虾米歌曲,揭秘五月天为什么狂吸粉?!

    最近两天,我被朋友圈的五月天粉丝(五迷)疯狂刷屏,"五月天永远陪你到20岁""演唱会即视感",这些字眼让我恨不得马上奔到电影院打卡. 作为五迷,我是满怀激情地在 ...

  5. python爬取虾米音乐_Python 爬取 620 首虾米歌曲,揭秘五月天为什么狂吸粉?!

    原标题:Python 爬取 620 首虾米歌曲,揭秘五月天为什么狂吸粉?! 来源:Yura不说数据说 作者 :Yura 最近两天,我被朋友圈的五月天粉丝(五迷)疯狂刷屏,"五月天永远陪你到2 ...

  6. 利用python爬取豆瓣音乐_python爬虫之豆瓣音乐top250

    回家很久了,实在熬不住,想起来爬点数据玩一玩,之前自己笔记本是win7加ubuntu16.04双系统,本打算在ubuntu里写代码的,可是回到家ubuntu打开一直是紫屏,百度知乎方法用了也没解决,厉 ...

  7. python给视频加背景音乐_python中加背景音乐如何操作

    在python中加背景音乐的方法: 1.导入pygame资源包: 2.修改音乐的file路径: 3.使用init()方法进行初始化: 4.使用load()方法添加音乐文件: 5.使用play()方法播 ...

  8. python飞机大战加背景音乐_python实现飞机大战小游戏 python飞机大战中的音频文件怎么改成MP3...

    怎么样用Python写飞机大战游戏 python开发飞机大战外星人游戏怎么弄双人模式新的一年,哪怕仍是一个人,也要活得像一支队伍,为自己的头脑和心灵招兵买马,不气馁,有召唤,爱自由. 主函数 impo ...

  9. python输出文字加数字_python变量、输入、输出、数字、字符串

    总结 01.print()输出 02.数据类型:Numbers(数字类型:int(整数型).float(浮点数).complex(复数:实数+虚数 5+2j).布尔值(true.false)) 03. ...

最新文章

  1. Windows Embedded CE 6.0开发初体验(二)CE开发环境 收藏
  2. SVN错误:SVN Working copy XXX is too old
  3. setfacl 权限导出_Linux如何使用setfacl命令创建权限文件
  4. 用移位实现除以或者乘以一个数
  5. 三十七 Python分布式爬虫打造搜索引擎Scrapy精讲—将bloomfilter(布隆过滤器)集成到scrapy-redis中...
  6. Linux的shell编程
  7. python编程入门与案例详解-清华大学出版社-图书详情-《Python编程入门与案例详解》...
  8. extern 头文件 定义声明
  9. dispaly 的block与inline-block的用法
  10. 淘客APP开发定制系统推荐
  11. plc通过无线通讯连接服务器,PLC无线通讯
  12. 数据挖掘里的开源问题(PAKDD 2009 WORKSHOP CALL FOR PAPER)
  13. iOS开发中UIImageView逆时针旋转,并得到旋转后的图片
  14. 【JAVA】Java8对时间的一些常用操作记录。例如:LocalDateTime、ZoneId等。
  15. 轻松打造开源安全信息管理平台
  16. 网络爬虫十三-队列处理
  17. Rockchip RK3588 kernel dts解析之USB模块
  18. AI孙燕姿爆火,华语乐坛重温旧梦
  19. Live Speech Portraits: Real-Time Photorealistic Talking-Head Animation (译文)
  20. 图片格式转换软件哪个好?建议收藏这三个方法

热门文章

  1. 3分钟学会在 ASP.NET MVC 中创建、读取和编辑 Excel 电子表格
  2. 水产养殖微滤机滤网 微滤机滤网
  3. ubuntu20.04开启SSH远程登录
  4. Python 大数的质因数分解
  5. ref和reactive
  6. 全息电话会议开源项目LiveScan3D-Hololens
  7. eclipse的小红叹号
  8. linux查看toa模块,toa 模块_Tenderrain的技术博客_51CTO博客
  9. CF817D Imbalanced Array(单调栈+区间交集的处理)
  10. SSM整合Quart和Springboot整合Quartz组件