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

论坛 期权论坛 期权     
Python开发者   2019-2-23 23:56   5707   0
(给Python开发者加星标,提升Python技能)
作者:法纳斯特(本文来自作者投稿)
自古真情留不住,唯有套路得人心。

刷抖音的小伙伴,也许会有点印象。

利用Python的pygame库,生成一个套路神器。


/ 01 / 无套路版本

无套路版本和抖音上的一些视频差不多。

就是点不了拒绝按钮...

详细代码如下。

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:
foreventinpygame.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-5andpos[1]unlike_pos_y-5:
whileTrue:
unlike_pos_x,unlike_pos_y=get_random_pos()
ifpos[0]unlike_pos_x-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)
#设置关闭选项属性
foreventinpygame.event.get():
ifevent.type==pygame.QUIT:
sys.exit()
#当鼠标点击同意按钮后,跳转结束页面
ifpos[0]like_pos_x-5andpos[1]like_pos_y-5:
ifevent.type==pygame.MOUSEBUTTONDOWN:
show_like_interface(screen)

pygame.display.flip()
pygame.display.update()
clock.tick(60)


main()

运行代码,效果如下。

[iframe]https://v.qq.com/iframe/preview.html?width=500&height=375&auto=0&vid=u0837locfx6[/iframe]
看出来那满满的套路了没。


/ 03 / 打包程序

看了上面一行行的代码,我们能直接交给女神吗?

答案不用想就知道的。

肯定是不能。


因为那样无疑是自取灭亡...

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





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





















/ 04 / 总结


小姐姐,你的快递到了。

什么快递?


我的一厢情愿。


【本文作者】


法纳斯特:Python爱好者,专注爬虫,数据分析及可视化


推荐阅读
(点击标题可跳转阅读)
啥是佩奇?用 Python 画给你看
用 Python 全自动下载抖音小姐姐视频


觉得本文对你有帮助?请分享给更多人
关注「Python开发者」加星标,提升Python技能

喜欢就点一下「好看」呗~
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:835
帖子:167
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP