红衣佳人白衣友,
朝与同歌暮同酒。
世人谓我恋长安,
其实只恋长安某。
在刷抖音的时候看到了很多表白视频
类似这样的:
虽然这只是为了博人一笑,
但还是让我想到了自己青涩的初恋~脸红
我当时就是不折不扣的king of Kneel dog!
丘比特射箭的时候为什么要蒙着眼,
这个世界上重要的东西很多
世界很大相遇本不易,如果那个人是你
我愿意···
但作为那个年代的淬火钢铁直男,连“多喝热水”都不会跟妹纸说。
更别说花样表白了。
昨天正好公司的小产品说要发个这样的软件给前台妹纸,
就写一个吧送给他吧。
在文章最后,作为过来人的吴伯伯有一段话想跟那位小产品说。
教程开始
首先!
首先当然需要这两个文件,也可以换成你自己喜欢的图片和字体
sys是python的标准库,
提供了python运行时环境变量的操控()用于结束游戏退出
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 = [‘房产证给你’, ‘我妈会游泳’, ‘我会修电脑’, ‘我会写代码’]
(代码看不全可以左右滑动代码块,悉知)
小编是一名python开发工程师,这里有我自己整理了一套最新的python系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等。想要这些资料的可以关注小编,并在后台私信小编:“01”即可领取。
# 点击喜欢按钮后显示的页面 def show_like_interface(text, screen, color=(255, 0, 0)): (bg_color) font = ('./fon;, WIDTH // (len(text))) textRender = (text, True, color) textRect = () = (WIDTH / 2, HEIGHT / 2) (textRender, textRect) () while True: for event in (): if event.type == : () () # 按钮 def button(text, x, y, w, h, color, screen): (screen, color, (x, y, w, h)) font = ('./fon;, 20) textRender = (text, True, (0, 0, 0)) textRect = () = ((x+w/2), (y+h/2)) (textRender, textRect) def main(): text = "射吧" # 在我们要动手用它完成我们的想法之前,电脑这个强迫症需要我们检查一遍,这个工具包是否完整,能否正常给我们提供帮助。 # 而这个检查的动作, () 检查,电脑上一些需要的硬件调用接口、基础功能是否有问题。 # 如果有,他会在程序运行之前就反馈给你,方便你进行排查和规避。 # 对pygame内部各种功能进行初始化创建及变量设置,比如pygmae里面的窗体,键盘的使用的事件队列,等等都需要我们()初始化 # () # 调用 display 模块的 set_mode 函数,作用是初始化屏幕对象(也即窗口对象)。 # 此处传入一个参数,即(640, 360)元组,这使得窗口的分辨率是640*360 screen = ((WIDTH, HEIGHT)) # 窗口标题 ("表白神器") # 不喜欢按钮的初始位置和大小 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眼神 (bg_color) # 加载图片,从文件加载新图片 img = pygame.image.load("./img;) # 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对象上引导对图片的绘制 (img, imgRect) # 监听事件 # () 的作用是获取事件列表。事件列表内包含0个或多个事件对象 (点击 鼠标移动 关闭窗口) # 依次赋值给 event 变量 for event in (): # 检测到鼠标 if event.type == : # 获取鼠标位置 mouse_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 = () 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) # 显示游戏 # 刷新屏幕,以使最近的绘制操作生效。 () # 对窗口进行更新 () # 创建Clock对象,用于操作时间 # tick(60)控制帧速度,即窗口刷新速度,每秒钟60次帧刷新,视频中每次展示的静态图像称为帧 ().tick(60) show_like_interface('我就知道小姐姐你也喜欢我~', screen, color=(表示程序的主入口。所以以后为了避免该文件被外部文件调用,一般建议加上
if name == ‘main’:
main()
做出来的效果就是如此:
不要随心所欲地生活,也不要随遇而安地行走在职业生涯的漫漫长路上。
没有明确的方向,你走的每一步都是徒劳的。
对工程师来说,没有以不变应万变的方法,
唯一不变的就是改变,树立长远的目标,持之以恒,踏实前行,方能达到最终的目标。
动起手来吧!你会看见不一样的自己。
最后一段话送给我们的产品小伙
人是这样的
喜欢她的时候也是最不了解她的时候
在一起久了
能经历风雨的却是因为对彼此的了解
我们这一生,遇见爱遇见性都不稀奇
难得的是,
遇见理解。
就像誓言这东西
无法衡量坚贞与判断对错,它只能证明
在说出来的那一刻,彼此曾经真诚过。
喜欢她就应该去了解她,并真心的喜欢她,而不是花时间弄这种东西,
当你拿类似的软件去逗她开心,
其实你在他心里已经被KO了一遍又一遍。