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

    科技2024-06-17  70

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

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

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

    无套路版本

     

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

    详细代码如下:

    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()

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

     

    套路版本

     

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

    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()

    效果如下:

    打包程序

     

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

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

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

    小姐姐,你的快递到了。

    什么快递? 

    我的一厢情愿。

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

     

    完整项目代码获取点这即可

     

    Processed: 0.013, SQL: 8