前提:写不出那么那个的话哇,随便写写,随便看看,重在代码(文章末尾有免费完整源代码) 

  实验环境:

    pygame 1.9.4

    pycharm

    python3.6

  实现思路:

    pygame.display实现基本框架,然后screen接收text和button内容,pygame.mouse.get_pos()获取鼠标位置,然后判断鼠标所在位置,改变B选项位置即可(后面button函数在循环中改变,给关闭选项添加事件,然后pygame.mixer.music加载背景音乐,基本就是这些知识点了)

  实验帮助:

    参考手册:Pygame帮助手册 https://blog.csdn.net/fengf2017/article/details/79300801

  实现效果:

   实验过程:

     1.构建基本框架:

        和之前计算器差不多,先添加标题,text,button,什么的,然后控制好背景图片和框架的大小,别留下空白即可

        构建基本框架语句

        

#基本框架
WIDTH, HEIGHT = 640,640
#不全屏
screen = pygame.display.set_mode((WIDTH, HEIGHT), 0, 32) pygame.init()

  

        添加标题:

pygame.display.set_caption('2019-2-14情人节快乐')

     2.添加背景音乐和text,button,首先应该规定好大小和位置,这点很重要,不然后面完全不知道放在哪里,怎么改变也不知道

      由于本人图片是640*640,所以基本规定好了。

       添加背景音乐

      

# 添加背景音乐
pygame.mixer.music.load('love.mp3')
pygame.mixer.music.play(-1, 20)
pygame.mixer.music.set_volume(0.5)

        添加text和button相关信息:

      

#信息内容
def title(text, screen, scale, color=(, , )):
font = pygame.font.SysFont('SimHei', )
textRender = font.render(text, True, color)
screen.blit(textRender, (WIDTH / scale[], HEIGHT / scale[])) # 按钮
def button(text, x, y, w, h, color, screen):
pygame.draw.rect(screen, color, (x, y, w, h))
font = pygame.font.SysFont('SimHei', )
textRender = font.render(text, True, (, , ))
textRect = textRender.get_rect()
textRect.center = ((x+w/), (y+h/))
screen.blit(textRender, textRect)

      3.随机改变B选项位置和点击确定后的刷新,和绑定关闭事件

       只需要将获取鼠标位置判断一下,然后在循环中随机改变位置,赋值给B选项即可

       点击后的刷新:首先添加语句,然后执行如下语句即可

  

    pygame.display.update()

        给关闭键绑定事件,实现关闭

        

# 设置关闭选项属性
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()

      上述关闭语句在点击A选项前后都要写,因为页面刷新,需要能够关闭本软件(良心啊!!!)

  

 #!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2019/2/14 10:27
# @Author : Empirefree
# @File : 19-情人节.py
# @Software: PyCharm Community Edition import pygame
import random
import sys #基本框架
WIDTH, HEIGHT = 640,640
#不全屏
screen = pygame.display.set_mode((WIDTH, HEIGHT), 0, 32)
#标题
pygame.display.set_caption('2019-2-14情人节快乐') #信息内容
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, 500), random.randint(20, 500)
return x, y
def heart(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 show_like_interface(screen):
screen.fill((255, 255, 255))
background1 = pygame.image.load('heart.jpg').convert()
screen.blit(background1, (0, 0))
heart('I like you too', 200, 300, 250, 50, (255, 0,0), screen) 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('love.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('avatar.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.My love is endless', 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) if __name__ == '__main__':
main()

  

  后话:祝大家情人节快乐,Happy New Year,给大家拜年啦,猪年2019年快乐,2019-2-14胡宇乔Empirefree立。

  链接: https://pan.baidu.com/s/1MT17OWOAtRT2-J6Sv_Vg2w 提取码: h15d 复制这段内容后打开百度网盘手机App,操作更方便哦

PyGame实现情人节表白利器的更多相关文章

  1. JQ实现情人节表白程序

    JQ实现情人节表白页面 效果图: 表白利页,你值得拥有哦! 代码如下,复制即可使用: <!doctype html> <html> <head> <meta ...

  2. 七夕情人节表白-纯JS实现3D心形+图片旋转

    七夕情人节就快到了,这里献上纯js表白神器-心里都是你,预览: 技术点:css-3d.js-随机色.js-transform 1.html: <div class="heart&quo ...

  3. 利用canvas实现刮刮乐效果

    最近做了个情人节表白的项目,表白内容时被遮盖的,刮开后才能显示,并且刮开一定比例后清空所有遮罩. function guaguale(obj,w,h){//obj时canvas元素 var canva ...

  4. 【情人节来一发】网站添加QQ客服功能

    今年的元宵节遇到情人节,挺不自量力的,呵呵,开篇给各位讲个段子,早上一美女同学在空间发说说道:“开工大吉 起床啦,卖元宵,卖玫瑰,卖避孕套啦-有木有一起去发财的小伙伴?Let’s go…”,对于此种长 ...

  5. [51Testing情人节活动]情人节,爱要有“礼”才完美!

    2.14情人节,你还在纠结送TA什么礼物么? 你还苦于不敢表白么? 在微信里勇敢说出你的爱 51Testing帮你给TA特别的惊喜! Ps.用这个做借口表个白也不错哦! 本期51官方微信特别选出三种精 ...

  6. 教你用 Python 实现抖音热门表白软件

    之前在群里看到有人发了一个抖音上很火的小视频,就是一个不正经的软件,运行后问你是不是愿意做我的朋友,但你没法点击到「不同意」!并且没办法直接关闭窗口! 很不正经,很流氓,有点适合我. 效果大概是这样的 ...

  7. 用 Python 写个七夕表白神器

    今天是七夕节,相比于现代人自创的 502,不对是 520,七夕才是中国传统意义上的情人节,本文分享几个 Python 表白程序,情侣可以现学现用,单身的话也可以先收藏一下,说不定下次就用上了. 爱心树 ...

  8. 利用 Python 写个七夕表白神器

    今天是七夕节,相比于现代人自创的 502,不对是 520,七夕才是中国传统意义上的情人节,本文分享几个 Python 表白程序,情侣可以现学现用,单身的话也可以先收藏一下,说不定下次就用上了. 很多人 ...

  9. 关于我用python表白成功这件事【表白成功】

    520,并非情人所属, 我们可以表白万物, 不管什么时候, 这都是一个特别的日子, 今天,我要表白所有, 心里有我的人! 在这个充满幸福的日子里, 我要把最美好的祝福, 送给心里有我的每一个人: 祝愿 ...

随机推荐

  1. String工具类2

    1:比较字符串 public static void main(String[] args) { // String去创建对象有多种方式 // 方式1 直接字面值赋值 String s = " ...

  2. python3 参数*args 、 **args 在函数定义和调用中的应用

    一.函数调用时 说明:*args 表示解包(解包 列表.元组.字符串类型) #定义函数cn_musql def cn_musql(host,port,user,pwd,db): print(host) ...

  3. 与PON相关的abbreviation

    AAL:Asynchronous transfer mode Adaptation Layer 异步传输适配层 ACS:Autoconfiguration Server 自动配置服务 ADSL:Asy ...

  4. Exp3 免杀原理与实践 20164320 王浩

    一.实验内容 1.1 正确使用msf编码器(0.5分),msfvenom生成如jar之类的其他文件(0.5分),veil-evasion(0.5分),加壳工具(0.5分),使用shellcode编程( ...

  5. xmanager 开启X11转发失败问题解决

    安装相关rpm包 yum -y install xorg-x11-xauth xorg-x11-utils xorg-x11-fonts-* yum install dejavu-lgc-sans-f ...

  6. linux(centos7)设置tomcat开机启动

    1.在/etc/rc.d/rc.local中加入: #java environment export JAVA_HOME=/usr/java/jdk1.8.0_161 export CLASSPATH ...

  7. Python3学习之路~7.5 异常处理

    1.异常基础 在编程过程中为了增加友好性,在程序出现bug时一般不会将错误信息显示给用户,而是现实一个提示的页面,通俗来说就是不让用户看见大黄页!!! try: pass except Excepti ...

  8. Android编程 控件与布局

    控件和布局的继承结构 常用控件 1.TextView <?xml version="1.0" encoding="utf-8"?> <Line ...

  9. Azure架构(一):云计算基础

    云计算的定义 云计算(英语:cloud computing),是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需求提供给使用各种计算终端(桌面电脑.笔记本电脑.平板电脑.手机等) ...

  10. js写一个chrome 插件

    访问网站的时候,最烦的就是一些弹窗和广告.于是,就想着能不能在访问特定网站的时候,执行一段js脚本,去除页面的广告.于是乎,好像 chrome 插件可以实现. 这里,以 百度 的网站为例 新建 sim ...