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

  实验环境:

    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. 记录智能合约solidity编译的坑

    在Linux环境下入门写一段solidity编译遇到error和warning,经过一番研究后才得其缘由,下面以一段demo总结一下. pragma solidity ^; // 指定所需的编译器版本 ...

  2. linux03:系统常用的命令

    1,蜗牛,硬件-内核-接口API(系统调用接口)-程序或者服务,用户不能直接和硬件对话,所以需要一个翻译器,这个翻译器就是shell.美国盾牌 2,shell是一个翻译官,bash是所有翻译官里面干的 ...

  3. ItunesConnect:"Missing Push Notification Entitlement"警告-----以及解决方法

    最近开发的cordova应用,要做ios的适配,并且发布版本,但是有一次在发测试版本的时候,突然收到一封邮件警告,原文如下: Missing Push Notification Entitlement ...

  4. [dev][go] 入门Golang都需要了解什么

    一 什么是Golang 首先要了解Golang是什么. Golang是一门计算机编程语言:可以编译成机器码的像python一样支持各种特性的高级语言. 由Google发明,发明人之一是K,就是C语言的 ...

  5. Autofac之依赖注入

    这里主要学习一下Autofac的依赖注入方式 默认构造函数注入 class A { public B _b; public A() { } public A(B b) { this._b = b; } ...

  6. 一、大体认识jspxcms

    声明:jspxcms的license写明,允许将jspxcms用于商业和非商业用途.此处只是作为研究.分享使用心德,并不涉及商用. 使用版本:jspxcms  9.5.0 一.下载源码,并部署到ecl ...

  7. LockScreen

    <Window x:Class="XXX.Client.LockScreenView" xmlns="http://schemas.microsoft.com/wi ...

  8. 多线程深入:synchronized(转,有删减)

    原文:https://www.cnblogs.com/hapjin/p/4678773.html synchronized 修饰方法时锁定的是调用该方法的对象.它并不能使调用该方法的多个对象在执行顺序 ...

  9. Parco_Love_String

    二维的kmp直接搞出来emmm, 后缀自动机都没这个快(本弱鸡不会后缀自动机) #include <bits/stdc++.h> using namespace std; #define ...

  10. php爬虫入门 - 登录抓取内容

    PHP 写爬虫 说实话我也想用Python的,毕竟人家招牌.无奈我Python还停留在看语法的阶段,实在太惭愧,鞭笞一下自己加油学习.这里用php的CURL库进行页面抓取. 同事使用的系统需要先登录, ...