情话说不出?教你用Python做个表白程序,女神:饭在锅里,人在..

红衣佳人白衣友,

朝与同歌暮同酒。

世人谓我恋长安,

其实只恋长安某。

在这里插入图片描述

在刷抖音的时候看到了很多表白视频

类似这样的:

在这里插入图片描述

虽然这只是为了博人一笑,

但还是让我想到了自己青涩的初恋~脸红
在这里插入图片描述

我当时就是不折不扣的king of Kneel dog!

丘比特射箭的时候为什么要蒙着眼,

这个世界上重要的东西很多

世界很大相遇本不易,如果那个人是你

我愿意···

但作为那个年代的淬火钢铁直男,连“多喝热水”都不会跟妹纸说。

更别说花样表白了。

昨天正好公司的小产品说要发个这样的软件给前台妹纸,

就写一个吧送给他吧。

在文章最后,作为过来人有一段话想跟那位小产品说。

发现很多朋友想Python却不知道该怎么下手,正好我这里整理了一些关于Python的学习资料,有需要的朋友文末免费获取这些学习资料,希望能对大家有所帮助!!!

教程开始

首先!

首先当然需要这两个文件,也可以换成你自己喜欢的图片和字体

在这里插入图片描述

sys是python的标准库,

提供了python运行时环境变量的操控sys.exit()用于结束游戏退出

import sys

import pygame

import random

游戏的高宽分别是

WIDTH, HEIGHT = 640, 360

把颜色值(230, 230, 230)赋值给 bg_color 变量

三个整数依次是三原色中红色、绿色和蓝色的浓度值。

浓度值是一个整数,最大为255,最小为0。

bg_color = (255, 255, 255)

button_text_list = [‘房产证给你’, ‘我妈会游泳’, ‘我会修电脑’, ‘我会写代码’]

(代码看不全可以左右滑动代码块,悉知)

#点击喜欢按钮后显示的页面
def show_like_interface(text, screen, color=(255, 0, 0)):
screen.fill(bg_color)
font = pygame.font.Font(‘./font/simkai.ttf’, WIDTH // (len(text)))
textRender = font.render(text, True, color)
textRect = textRender.get_rect()
textRect.midtop = (WIDTH / 2, HEIGHT / 2)
screen.blit(textRender, textRect)
pygame.display.update()
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
#按钮
def button(text, x, y, w, h, color, screen):
pygame.draw.rect(screen, color, (x, y, w, h))
font = pygame.font.Font(‘./font/simkai.ttf’, 20)
textRender = font.render(text, True, (0, 0, 0))
textRect = textRender.get_rect()
textRect.center = ((x+w/2), (y+h/2))
screen.blit(textRender, textRect)
#标题
def title(text, screen, scale, color=(0, 0, 0)):
#pygame.font.Font(“字体”,“字号”,*)
font = pygame.font.Font(‘./font/simkai.ttf’, WIDTH//(len(text)2))
#使用已有的文本创建一个位图image,返回值为一个image;
#对于位图可用get_height(),get_width()的方法获得高与宽;
#True表示是否抗锯齿,第三个为字体颜色,
#还可以有第四个为背景色,没有时就为默认的透明;
textRender = font.render(text, True, color)
#Rect对象有一些重要的属性,如:top,botton,letf、right表示上下左右
#width,height表示宽高 我有这些值之后,对于我们编写程序十分方便
textRect = textRender.get_rect()
#中央x坐标整数值 顶部y坐标的整数值
textRect.midtop = (WIDTH/scale[0], HEIGHT/scale[1])
#将位图绘制到屏幕上,screen为建立的主屏;
screen.blit(textRender, textRect)
#生成随机的位置坐标
def get_random_pos():
x, y = random.randint(20, WIDTH-20), random.randint(20, HEIGHT-20)
return x, y
def main():
text = “射吧”
#在我们要动手用它完成我们的想法之前,电脑这个强迫症需要我们检查一遍,这个工具包是否完整,能否正常给我们提供帮助。
#而这个检查的动作, pygame.init() 检查,电脑上一些需要的硬件调用接口、基础功能是否有问题。
#如果有,他会在程序运行之前就反馈给你,方便你进行排查和规避。
#对pygame内部各种功能进行初始化创建及变量设置,比如pygmae里面的窗体,键盘的使用的事件队列,等等都需要我们pygame.init()初始化
#pygame.init()
#调用 display 模块的 set_mode 函数,作用是初始化屏幕对象(也即窗口对象)。
#此处传入一个参数,即(640, 360)元组,这使得窗口的分辨率是640
360
screen = pygame.display.set_mode((WIDTH, HEIGHT))
#窗口标题
pygame.display.set_caption(“表白神器”)
#不喜欢按钮的初始位置和大小
unlike_pos_x = 330
unlike_pos_y = 250
unlike_pos_width = 100
unlike_pos_height = 50
#喜欢按钮的初始位置和大小
like_pos_x = 180
like_pos_y = 250
like_pos_width = 100
like_pos_height = 50
#标识位,作为小姐姐之后点击了同意后退出的标准
running = True
#按钮颜色
like_color = (216, 191, 216)
while running:
#填充屏幕背景色
#显示窗口背景填充bg_color眼神
screen.fill(bg_color)
#加载图片,从文件加载新图片
img = pygame.image.load(“./imgs/3.jpg”)
#Surface对象与图像时一一对应关系
#简单理解在pygame里导入的任何图片都是Surface对象
#pygame使用内部定义的Surface对象表示所有载入的图像,其中get_rect()反法返回一个覆盖图像的矩形Rect对象
#Rect对象有一些重要的属性,如:top,botton,letf、right表示上下左右
#width,height表示宽高 我有这些值之后,对于我们编写程序十分方便
imgRect = img.get_rect()
#图片位置
#中央x坐标整数值 顶部y坐标的整数值
imgRect.midtop = 80, 10
#将一个图像绘制在一个图像上,及将img绘制在imgRect位置上。通过Rect对象上引导对图片的绘制
screen.blit(img, imgRect)
#监听事件
#pygame.event.get() 的作用是获取事件列表。事件列表内包含0个或多个事件对象 (点击 鼠标移动 关闭窗口)
#依次赋值给 event 变量
for event in pygame.event.get():
#检测到鼠标
if event.type = pygame.MOUSEBUTTONDOWN:
#获取鼠标位置
mouse_pos = pygame.mouse.get_pos()
#若点击了喜欢按钮,停止 while 循环
if mouse_pos[0] < like_pos_x + like_pos_width and mouse_pos[0] > like_pos_x and mouse_pos[1] < like_pos_y + like_pos_height and mouse_pos[1] > like_pos_y:
like_color = bg_color
running = False
#获取鼠标位置
#若鼠标位置位于按钮区域内
#则随机生成按钮位置进行显示
mouse_pos = pygame.mouse.get_pos()
if mouse_pos[0] < unlike_pos_x + unlike_pos_width and mouse_pos[0] > unlike_pos_x and
mouse_pos[1] < unlike_pos_y + unlike_pos_height and mouse_pos[1] > unlike_pos_y:
while True:
unlike_pos_x, unlike_pos_y = get_random_pos()
text = button_text_list[random.randint(0, len(button_text_list) - 1)]
if mouse_pos[0] < unlike_pos_x + unlike_pos_width and mouse_pos[0] > unlike_pos_x and
mouse_pos[1] < unlike_pos_y + unlike_pos_height and mouse_pos[1] > unlike_pos_y:
continue
break
title(‘小姐姐,我观察你很久了’, screen, scale=[1.8, 10])
title(‘做我女朋友好不好呀’, screen, scale=[1.8, 3])
button(‘好呀’, like_pos_x, like_pos_y, like_pos_width,
like_pos_height, like_color, screen)
button(text, unlike_pos_x, unlike_pos_y, unlike_pos_width,
unlike_pos_height, (216, 191, 216), screen)
#显示游戏
#刷新屏幕,以使最近的绘制操作生效。
pygame.display.flip()
#对窗口进行更新
pygame.display.update()
#创建Clock对象,用于操作时间
#tick(60)控制帧速度,即窗口刷新速度,每秒钟60次帧刷新,视频中每次展示的静态图像称为帧
pygame.time.Clock().tick(60)
show_like_interface(‘我就知道小姐姐你也喜欢我~’, screen, color=(0, 0, 0))

表示程序的主入口。所以以后为了避免该文件被外部文件调用,一般建议加上

if name == ‘main’:

main()

不要随心所欲地生活,也不要随遇而安地行走在职业生涯的漫漫长路上。

没有明确的方向,你走的每一步都是徒劳的。

对工程师来说,没有以不变应万变的方法,

唯一不变的就是改变,树立长远的目标,持之以恒,踏实前行,方能达到最终的目标。

动起手来吧!你会看见不一样的自己。

最后一段话送给我们的产品小伙

在这里插入图片描述

人是这样的

喜欢她的时候也是最不了解她的时候

在一起久了

能经历风雨的却是因为对彼此的了解

我们这一生,遇见爱遇见性都不稀奇

难得的是,

遇见理解。

就像誓言这东西

无法衡量坚贞与判断对错,它只能证明

在说出来的那一刻,彼此曾经真诚过。

喜欢她就应该去了解她,并真心的喜欢她,而不是花时间弄这种东西,

当你拿类似的软件去逗她开心,

其实你在她心里已经被KO了一遍又一遍。

-END-


学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、机器学习、自动化测试带你从零基础系统性的学好Python!

👉[CSDN大礼包:《python安装工具&全套学习资料》免费分享]安全链接,放心点击

👉Python学习大礼包👈

在这里插入图片描述

👉Python学习路线汇总👈

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(全套教程文末领取哈)
在这里插入图片描述

👉Python必备开发工具👈

在这里插入图片描述

温馨提示:篇幅有限,已打包文件夹,获取方式在:文末

👉Python实战案例👈

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

👉Python书籍和视频合集👈

观看零基础学习书籍和视频,看书籍和视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

在这里插入图片描述

👉Python面试刷题👈

👉Python副业兼职路线👈

在这里插入图片描述
在这里插入图片描述
这份完整版的Python全套学习资料已经上传CSDN,朋友们如果需要可以点击链接免费领取或者保存图片到wx扫描二v码免费领取保证100%免费

👉[CSDN大礼包:《python安装工具&全套学习资料》免费分享]安全链接,放心点击

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值