自古真情留不住,唯有套路得人心。
情人节马上来临,小F这就给大家带来一个Python的小套路。
刷抖音的小伙伴,也许会有点印象。
利用Python的pygame库,生成一个套路神器。
/ 01 / 无套路版本
无套路版本和抖音上的一些视频差不多。
就是点不了拒绝按钮...
详细代码如下。
import pygame
import random
import sys
# 根据背景图大小,设置游戏屏幕大小
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('小姐姐,你的快递到了。')
# 添加文本信息
def title(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]))
# 按钮
def button(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)
# 生成随机的位置坐标
def get_random_pos():
x, y = random.randint(10, 600), random.randint(20, 500)
return x, y
# 点击答应按钮后显示的页面
def show_like_interface(screen):
screen.fill((255, 255, 255))
background1 = pygame.image.load('214_1.jpg').convert()
screen.blit(background1, (0, 0))
pygame.display.update()
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
def main():
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
while running:
# 填充窗口
screen.fill((255, 255, 255))
# 添加背景图
background = pygame.image.load('214_2.jpg').convert()
screen.blit(background, (0, 0))
# 获取鼠标坐标
pos = pygame.mouse.get_pos()
# 判断鼠标位置,不同意时,按钮不断变化
if pos[0] < unlike_pos_x + unlike_pos_width + 5 and pos[0] > unlike_pos_x - 5 and pos[1] < unlike_pos_y + unlike_pos_height + 5 and pos[1] > unlike_pos_y - 5:
while True:
unlike_pos_x, unlike_pos_y = get_random_pos()
if pos[0] < unlike_pos_x + unlike_pos_width + 5 and pos[0] > unlike_pos_x - 5 and pos[1] < unlike_pos_y + unlike_pos_height + 5 and pos[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)
# 设置关闭选项属性
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
# 当鼠标点击同意按钮后,跳转结束页面
if pos[0] < like_pos_x + like_pos_width + 5 and pos[0] > like_pos_x - 5 and pos[1] < like_pos_y + like_pos_height + 5 and pos[1] > like_pos_y - 5:
if event.type == pygame.MOUSEBUTTONDOWN:
show_like_interface(screen)
pygame.display.flip()
pygame.display.update()
clock.tick(60)
main()
运行代码,效果如下。
代码里是设置有音乐的,所以运行代码后,会有背景音乐。
这里因为小F的电脑太渣,录屏下的音质特别差。
所以选择录制一个无声的视频。
大家将就着看吧。
/ 02 / 套路版本
自古真情留不住,唯有套路得人心。
或许上面的那个版本只会让小姐姐觉得你很可恨...
毕竟强迫症患者有点多,愣是不让人点。
估摸着要挨小姐姐的揍。
所以便有了下面这个套路版本。
详细代码如下。
import pygame
import random
import sys
# 根据背景图大小,设置游戏屏幕大小
WIDTH, HEIGHT = 1024, 576
screen = pygame.display.set_mode((WIDTH, HEIGHT), 0, 32)
pygame.display.set_caption('小姐姐,你的快递到了。')
# 添加文本信息
def title(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]))
# 按钮
def button(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)
# 生成随机的位置坐标
def get_random_pos():
x, y = random.randint(20, 620), random.randint(20, 460)
return x, y
# 点击答应后显示的页面
def show_like_interface(screen):
screen.fill((255, 255, 255))
background1 = pygame.image.load('214_1.jpg').convert()
screen.blit(background1, (0, 0))
pygame.display.update()
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
# 点击不答应按钮后显示的页面
def show_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()
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
def main():
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
while running:
# 填充窗口
screen.fill((255, 255, 255))
# 添加背景图
background = pygame.image.load('214_2.jpg').convert()
screen.blit(background, (0, 0))
# 获取鼠标坐标
pos = pygame.mouse.get_pos()
if pos[0] < unlike_pos_x + unlike_pos_width + 5 and pos[0] > unlike_pos_x - 5 and pos[1] < unlike_pos_y + unlike_pos_height + 5 and pos[1] > unlike_pos_y - 5:
while True:
if num > 5:
break
num += 1
unlike_pos_x, unlike_pos_y = get_random_pos()
if pos[0] < unlike_pos_x + unlike_pos_width + 5 and pos[0] > unlike_pos_x - 5 and pos[1] < unlike_pos_y + unlike_pos_height + 5 and pos[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))
# 设置小套路文本
if num < 6:
button('B.我拿你当闺蜜,你居然想睡我!果断拒绝!', unlike_pos_x, unlike_pos_y, unlike_pos_width, unlike_pos_height, unlike_color, screen, (255, 255, 255))
if num > 5:
button('B. 我拿你当闺蜜,你居然想睡我!果断答应!', unlike_pos_x, unlike_pos_y, unlike_pos_width, unlike_pos_height, unlike_color, screen, (255, 255, 255))
# 设置套路文本
if num == 1:
button('操作提示:请直接点击答案,切勿手抖!', unlike_pos_x, unlike_pos_y - 50, unlike_pos_width, unlike_pos_height, (255, 255, 255), screen, (192, 0, 0))
if num == 2:
button('咋又抖了?女神是不是哪里不舒服?', unlike_pos_x, unlike_pos_y - 50, unlike_pos_width, unlike_pos_height, (255, 255, 255), screen, (192, 0, 0))
if num == 3:
button('呀!看来这病得还不轻啊!', unlike_pos_x, unlike_pos_y - 50, unlike_pos_width, unlike_pos_height, (255, 255, 255), screen, (192, 0, 0))
if num == 4:
button('生了病也没人照料,心疼……', unlike_pos_x, unlike_pos_y - 50, unlike_pos_width, unlike_pos_height, (255, 255, 255), screen, (192, 0, 0))
if num == 5:
button('好险!差点儿就点到了呢!', unlike_pos_x, unlike_pos_y - 50, unlike_pos_width, unlike_pos_height, (255, 255, 255), screen, (192, 0, 0))
if num == 6:
button('哎,算了,不躲了,你选吧', unlike_pos_x, unlike_pos_y - 50, unlike_pos_width, unlike_pos_height, (255, 255, 255), screen, (192, 0, 0))
# 点击套路按钮
if num > 5:
if pos[0] < unlike_pos_x + unlike_pos_width + 5 and pos[0] > unlike_pos_x - 5 and pos[1] < unlike_pos_y + unlike_pos_height + 5 and pos[1] > unlike_pos_y - 5:
if event.type == pygame.MOUSEBUTTONDOWN:
show_unlike_interface(screen)
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
# 点击同意按钮
if pos[0] < like_pos_x + like_pos_width + 5 and pos[0] > like_pos_x - 5 and pos[1] < like_pos_y + like_pos_height + 5 and pos[1] > like_pos_y - 5:
if event.type == pygame.MOUSEBUTTONDOWN:
show_like_interface(screen)
pygame.display.flip()
pygame.display.update()
clock.tick(60)
main()
运行代码,效果如下。
看出来那满满的套路了没。
/ 03 / 打包程序
看了上面一行行的代码,我们能直接交给女神吗?
答案不用想就知道的。
肯定是不能。
因为那样无疑是自取灭亡...
所以使用pyinstaller库将代码、图片及音乐素材打包成exe文件。
直接点击love.exe程序,即可运行。
/ 04 / 总结
小姐姐,你的快递到了。
什么快递?
我的一厢情愿。
相关的图片,音乐、代码以及打包程序已上传公众号。
公众号回复「表白」即可获取。
万水千山总是情,点个「好看」行不行。
相关推荐
### 情人节专题-撩汉全攻略 #### 单身族如何抬高身价 在探讨如何抬高单身族的个人魅力与价值之前,我们首先需要明确的是,提升自身吸引力并非单纯为了吸引异性,更重要的是实现自我成长和个人品牌建设。下面我们将...
这个名为“情人节女神节表白代码”的项目,就是程序员们展示浪漫情怀的一种创新实践。它是一个恋爱增强辅助器,专为那些想要通过独特方式向心仪之人表达爱意的程序员设计。通过编写源码,这些程序员能够创造出个性化...
【情人节贺卡模板】是一种网页设计资源,常用于制作具有浪漫和温馨氛围的电子贺卡,以庆祝情人节这一特殊节日。在网页设计中,贺卡模板可以极大地提高设计师的工作效率,减少从零开始创建设计的时间。这样的模板通常...
【情人节恶搞测试工具】是一款特别为情人节设计的小型趣味软件,主要目的是为了增添节日气氛,给朋友们带来一些欢乐。这个程序可能包含了各种互动元素,比如搞笑的问答、随机的情话生成或者是有趣的图像展示,旨在让...
"情人节的由来和意义" 情人节是一个全球化的节日,然而,它的来历和意义却鲜为人知。根据历史记载,在古罗马时期,二月十四日是为表示对约娜的尊敬而设的节日。约娜是罗马众神的皇后,罗马人同时将她尊奉为妇女和...
【情人节代码生成器】是一款专为情人节设计的创新工具,旨在帮助用户快速创建个性化的情人节网页和本地应用。这款程序允许用户自定义内容,包括文字、图片、音乐等元素,以此来表达对另一半的独特情感。它将编程与...
情人节,一个充满爱与浪漫的节日,越来越多的人选择通过网络来表达情感。在这样的背景下,利用HTML5和JavaScript技术制作出的情人节动画,成为了传达心意的独特方式。本文将深入探讨如何运用这两种强大的前端技术来...
在IT行业中,程序员通常以其独特的思维方式和技能表达情感,特别是在特殊的日子里,如情人节。"程序员表白代码之情人节快乐"这个主题,展示了他们利用编程语言和数字艺术来传达浪漫情怀的方式。下面,我们将深入探讨...
【七夕情人节表白程序网页版源码】是一个用于个人情感表达的互动网页程序,它无需数据库支持,方便用户快速修改并使用。这个源码可能是由一位热心的网站管理员或者开发者分享出来,目的是为了帮助大家在七夕这个特殊...
地产品牌元宵节情人节活动策划方案.pptx
标题中的“一个小礼物程序 情人节见不到面的lover之间最美的礼物”暗示这是一个专为情人节设计的软件应用,旨在帮助无法面对面的情侣传递情感。这个程序可能包含各种功能,如虚拟花束的赠送、情书的书写、音频或视频...
- **情人节、生日祝福等用途**: 这些网页适用于多种场合,如情人节表白、生日祝福等。 ### 知识点七:适用范围与受众 #### 7.1 适用人群 - **大学生**: 专门为大学生设计的网页设计作业模板,符合学生的技能水平和...
七夕情人节表白代码七夕情人节表白代码.zip七夕情人节表白代码.zip七夕情人节表白代码.zip七夕情人节表白代码.zip七夕情人节表白代码.zip七夕情人节表白代码.zip七夕情人节表白代码.zip七夕情人节表白代码.zip七夕...
标题中的“精美情人节PPT模板下载.rar”表明这是一个关于情人节主题的PPT模板资源,以压缩文件(RAR)的形式提供,通常用于帮助用户快速创建具有专业设计感的情人节约会或活动展示。这类模板通常包括预设的布局、...
七夕情人节表白代码七夕情人节表白代码七夕情人节表白代码七夕情人节表白代码七夕情人节表白代码七夕情人节表白代码七夕情人节表白代码七夕情人节表白代码七夕情人节表白代码七夕情人节表白代码七夕情人节表白代码...
描述部分提到了这个网页源码的主要功能——“发祝福,祝你情人节快乐”,表明此源码设计的目的是为了帮助人们在2012年的情人节通过网络传递祝福。它特别强调是“最漂亮的情人节祝福网页”,意味着设计可能具有吸引人...
"情人节psd模板下载"这个标题表明我们正在讨论的是与情人节主题相关的PSD设计模板,这些模板通常包含完整的布局、设计元素以及可编辑的图层,方便设计师进行定制化修改,以快速创建出吸引人的情人节相关作品。...
【情人节幽默短信】是本文的主题,它以轻松诙谐的方式展现了人们在情人节这一天的情感交流,尤其是情侣间的互动。这些短信不仅包含着爱情的甜蜜,还有对日常生活琐事的幽默调侃,反映出不同人群对待情人节的独特态度...
C语言游戏源码 情人节的玫瑰花C语言游戏源码 情人节的玫瑰花C语言游戏源码 情人节的玫瑰花C语言游戏源码 情人节的玫瑰花C语言游戏源码 情人节的玫瑰花C语言游戏源码 情人节的玫瑰花C语言游戏源码 情人节的玫瑰花...
【PSD情人节快乐模板下载】是一个专为庆祝情人节设计的网页模板资源,它采用Photoshop PSD格式,便于设计师进行自定义和编辑。该模板适用于创建浪漫、温馨的在线页面,可以用于个人表达爱意,也可以是商家推广情人节...