Python实现敲击木鱼积累功德小项目

前言:前几天上课闲着没事写了一个python敲击木鱼积累功德的小项目,当时纯粹就是写着玩,回顾一下鼠标事件的东西还记不记得,发现这个博客的点赞和收藏量还挺高的,我当时也没有把它当回事,后面也有很多人问怎么实现的,想让我再添加一些其他功能!

随着点赞量和关注量不断增高,我又重新看了一下博客,感觉过于简单了,实在不配当当时python热榜的第一,所以我又把代码给稍微大改了一下,在原来总体实现的基础上添加了如下功能!

我们先看原来的效果:

1:实现了点击鼠标会弹出切换功德+1的surface界面,鼠标松开回复原先界面!

2:随着鼠标按键的按下同时也会伴随木鱼敲击的空灵的声音!

本次更新之后的功能有:

1:点击鼠标按键会出现功德+1和累计敲击多少次,积累了多少功德的新画面

2:优化了声音的play,降噪处理!

3:增加较强的互动性能,在不断的积累功德的过程中,会不定时随机出现意想不到的的互动效果,极大程度增加了该程序的趣味性!

ps:下次更新可能会在半个月后了,届时会使用tk的模块添加登录注册,以及网络编程的使用用户功德的统计排行榜!最近期末,还请谅解!

好了,话不多说,直接上代码:

import pygame
from locale import *
pygame.init()
pygame.mixer.init()
screen=pygame.display.set_mode((700,500))
pygame.display.set_caption("木鱼功德")

img1=pygame.image.load("images/muyuluck1.jpg")
# img2=pygame.image.load("images/muyulucky2.png")
img2=pygame.image.load("images/zan.jpg")
img3=pygame.image.load("images/qw.png")
rect1=img1.get_rect()

muyulucky = pygame.mixer.Sound('sound/muyu.WAV')
muyulucky.set_volume(0.4)
if pygame.mouse.get_focused():
            # 获取光标位置,2个值
    ball_x, ball_y = pygame.mouse.get_pos()
screen.blit(img1, (-180, -100))
count=0
f = pygame.font.SysFont('华文楷体',50)
f1 = pygame.font.SysFont('华文楷体',30)
# 生成文本信息,第一个参数文本内容;第二个参数,字体是否平滑;
# 第三个参数,RGB模式的字体颜色;第四个参数,RGB模式字体背景颜色;
# text = f.render("功德+1",True,(255,0,0),(0,0,0))
# text1=f1.render("今日积累功德"+str(count)+"次",True,(255,0,0),(0,0,0))
#获得显示对象的rect区域坐标
# textRect =text.get_rect()
# text1Rect =text1.get_rect()
# 设置显示对象居中
# textRect.topleft = (30,30)
# text1Rect.topleft = (450,30)
flag = False
while True:
    for event in pygame.event.get():
        if pygame.Rect.collidepoint(rect1, (ball_x, ball_y)) and event.type==pygame.MOUSEBUTTONDOWN:
            muyulucky.play()
            flag=True
            count = count + 1
            text = f.render("功德+1", True, (255, 0, 0), (0, 0, 0))
            textRect = text.get_rect()
            textRect.topleft = (30, 30)
            text1 = f1.render("今日积累功德" + str(count) + "次", True, (255, 0, 0), (0, 0, 0))
            text1Rect = text1.get_rect()
            text1Rect.topleft = (450, 30)
            screen.blit(text1, text1Rect)
            screen.blit(text,textRect)
            if count==8:
                f2 = pygame.font.SysFont("华文楷体", 25)
                text2 = f2.render("今日积累功德8次,去表白应该不会被拒绝太难堪哦", True, (255, 0, 20))
                text2Rect = text.get_rect()
                text2Rect.topleft = (60, 150)
                screen.blit(text2, text2Rect)
            if count==10:
                text = f.render("功德+1", True, (255, 0, 0), (0, 0, 0))
                textRect = text.get_rect()
                textRect.topleft = (30, 30)
                text1 = f1.render("今日积累功德" + str(count) + "次", True, (255, 0, 0))
                text1Rect = text1.get_rect()
                text1Rect.topleft = (450, 30)
                screen.blit(img1, (-180, -100))
                screen.blit(text1, text1Rect)
                screen.blit(text, textRect)
            if count==20:
                f2 = pygame.font.SysFont("华文楷体", 25)
                text3 = f2.render("手速这么快干嘛,这是敲木鱼积功德,不是你dfj", True, (230, 90, 80))
                text3Rect = text.get_rect()
                text3Rect.topleft = (60, 150)
                screen.blit(text3, text3Rect)
            if count==22:
                text = f.render("功德+1", True, (255, 0, 0), (0, 0, 0))
                textRect = text.get_rect()
                textRect.topleft = (30, 30)
                text1 = f1.render("今日积累功德" + str(count) + "次", True, (255, 0, 0), (0, 0, 0))
                text1Rect = text1.get_rect()
                text1Rect.topleft = (450, 30)
                screen.blit(img1, (-180, -100))
                screen.blit(text1, text1Rect)
                screen.blit(text, textRect)
            if count==28:
                f2 = pygame.font.SysFont("华文楷体", 25)
                text3 = f2.render("tmd,我看你不是敲木鱼,是泄火吧", True, (255, 200, 20))
                text3Rect = text.get_rect()
                text3Rect.topleft = (60, 150)
                screen.blit(text3, text3Rect)
            if count==30:
                text = f.render("功德+1", True, (255, 0, 0), (0, 0, 0))
                textRect = text.get_rect()
                textRect.topleft = (30, 30)
                text1 = f1.render("今日积累功德" + str(count) + "次", True, (255, 0, 0), (0, 0, 0))
                text1Rect = text1.get_rect()
                text1Rect.topleft = (450, 30)
                screen.blit(img1, (-180, -100))
                screen.blit(text1, text1Rect)
                screen.blit(text, textRect)
            if count==40:
                screen.blit(img2, (-210,10))
            if count==41:
                text = f.render("功德+1", True, (255, 0, 0), (0, 0, 0))
                textRect = text.get_rect()
                textRect.topleft = (30, 30)
                text1 = f1.render("今日积累功德" + str(count) + "次", True, (255, 0, 0), (0, 0, 0))
                text1Rect = text1.get_rect()
                text1Rect.topleft = (450, 30)
                screen.blit(img1, (-180, -100))
                screen.blit(text1, text1Rect)
                screen.blit(text, textRect)
            if count==50:
                f2 = pygame.font.SysFont("华文楷体", 25)
                text3 = f2.render("今日功德累计50次了,小熊后台奖励你一只女朋友!", True, (255, 0, 0))
                text3Rect = text.get_rect()
                text3Rect.topleft = (60, 150)
                screen.blit(text3, text3Rect)
                screen.blit(img3, (-300, 0))
            if count==51:
                text = f.render("功德+1", True, (255, 0, 0), (0, 0, 0))
                textRect = text.get_rect()
                textRect.topleft = (30, 30)
                text1 = f1.render("今日积累功德" + str(count) + "次", True, (255, 0, 0), (0, 0, 0))
                text1Rect = text1.get_rect()
                text1Rect.topleft = (450, 30)
                screen.blit(img1, (-180, -100))
                screen.blit(text1, text1Rect)
                screen.blit(text, textRect)

            pygame.display.flip()
        if pygame.Rect.collidepoint(rect1, (ball_x, ball_y)) and event.type==pygame.MOUSEBUTTONUP:
            flag = False

            text = f.render("功德+1", True, (0, 0, 0), (0, 0, 0))
            textRect = text.get_rect()
            textRect.topleft = (30, 30)
            screen.blit(text, textRect)
            if count==40:
                screen.blit(img2, (-210, 10))
            if count==50:
                f2 = pygame.font.SysFont("华文楷体", 25)
                text3 = f2.render("功德积累是好事,凡事有个度!", True, (255, 0, 0))
                text4 = f2.render("小熊后台检测到你今日功德累计50次,看张照片放松一下吧!!", True, (255, 0, 0))
                text3Rect = text.get_rect()
                text4Rect = text.get_rect()
                text3Rect.topleft = (60, 150)
                text4Rect.topleft = (0, 180)
                screen.blit(img3, (-300, 0))
                screen.blit(text3, text3Rect)
                screen.blit(text4, text4Rect)

            pygame.display.flip()
        if event.type==pygame.QUIT:
            import mouse
            pygame.quit()
    pygame.display.flip()

截图:

到此这篇关于Python实现敲击木鱼积累功德小项目的文章就介绍到这了,更多相关Python敲击木鱼内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 基于Python编写一个爆炸信息窗口脚本

    目录 前言 爆炸信息窗口 设计思路 模块准备 删除好友警告 源代码 批量获取表情包 前言 Hello!大家好,有好几天没有跟大家见面咯~不知道大家是否在等待<小玩意儿>专栏的更新呢 上一篇的文章[老师见打系列]:我只是写了一个自动回复讨论的脚本~ 感觉挺受大伙的喜欢的呢,非常感谢各位兄弟给哥们顶上热榜,你们的支持就是我更新的动力 所以这几天我就在想是否继续往[老师见打系列]更新文章,想出一些能让”老师见打“的idear,当然,我并不是要故意惹老师生气的哈…… 直到前天,突然想写点什么,于是打开

  • 利用Python实现自制文件搜索小工具

    目录 前言 环境准备 完整代码 前言 嗨嗨,大家晚上好 ~ 当自己电脑文件很多还有点乱,不记得自己文件放哪里的时候,用电脑自带的搜索文件,这个等待时间可慢了 对我们这种敲代码的,这能忍吗,所以我们不如自己用python做一个搜索工具!犄角旮旯的文件都能一秒钟搜索出来的那种! 一不小心还能把你们男(女)朋友那些藏的很深的不可告人的文件分分钟找出来~ 话不多说,赶紧开始吧 环境准备 解释器: Python 3.8.8 | Anaconda, Inc. 编辑器: pycharm 专业版 完整代码 就不

  • 基于Python实现敲击木鱼积累功德效果

    示例代码 import pygame pygame.mixer.init() screen=pygame.display.set_mode((700,500)) pygame.display.set_caption("木鱼功德") img1=pygame.image.load("images/muyuluck1.jpg") img2=pygame.image.load("images/muyulucky2.png") rect1=img1.get

  • 基于Python实现复刻人生重开模拟器

    目录 人生重开模拟器介绍 代码实现 打印初始界面 设置初始属性 设置角色性别 设置角色出生点 针对每一岁,生成人生经历 人生重开模拟器介绍 人生重开模拟器是由VickScarlet上传至GitHub的一款简单的文字网页游戏. 玩家点击“立即重开”并设置角色的初始属性后,程序就会随机为玩家生成对应的人生经历. 代码实现 下面我们实现一个简化版的人生重开模拟器,主要目的在于熟悉Python的语法. 打印初始界面 初始界面可以自由发挥,这里博主就随便打印一下. 代码如下: # 打印初始界面 print

  • Python+Pygame实现代码雨动画效果

    pygame实现代码雨动画 如视频所示 利用pygame库实现了一个代码呈雨状下落的视觉效果 部分代码如下 import sys import random import pygame from pygame.locals import * # 屏幕大小 WIDTH = 800 HEIGHT = 600 # 下落速度范围 SPEED = [15, 30] # 字母大小范围 SIZE = [5, 30] # CODE长度范围 LEN = [1, 8] # 随机生成一个颜色 def randomCo

  • Python实现敲击木鱼积累功德小项目

    前言:前几天上课闲着没事写了一个python敲击木鱼积累功德的小项目,当时纯粹就是写着玩,回顾一下鼠标事件的东西还记不记得,发现这个博客的点赞和收藏量还挺高的,我当时也没有把它当回事,后面也有很多人问怎么实现的,想让我再添加一些其他功能! 随着点赞量和关注量不断增高,我又重新看了一下博客,感觉过于简单了,实在不配当当时python热榜的第一,所以我又把代码给稍微大改了一下,在原来总体实现的基础上添加了如下功能! 我们先看原来的效果: 1:实现了点击鼠标会弹出切换功德+1的surface界面,鼠标

  • Python实战小项目之身份证信息校验

    python小项目–身份证信息校验 目的 制作个程序,输入身份证号码,输出如下信息 性别 : 男 地区 : 福建省龙岩市永定县 出生年月日: 2000年05月01日 出生当日派出所登记的第 1 个男孩 校验码: 0 身份证号真伪性: 真 所需文件与知识 身份证区域代码.xls(已上传) 身份证号码组成 身份证校验码算法 校验码算法 18位身份证=17位信息数据+1位校验码 1到6位 7到14位 15到16位 17位 18位 区域代码 出生年月日 登记所代码 性别 校验码 性别:男生为奇数,女生为

  • Python实战小项目之Mnist手写数字识别

    目录 程序流程分析图: 传播过程: 代码展示: 创建环境 准备数据集 下载数据集 下载测试集 绘制图像 搭建神经网络 训练模型 测试模型 保存训练模型 运行结果展示: 程序流程分析图: 传播过程: 代码展示: 创建环境 使用<pip install+包名>来下载torch,torchvision包 准备数据集 设置一次训练所选取的样本数Batch_Sized的值为512,训练此时Epochs的值为8 BATCH_SIZE = 512 EPOCHS = 8 device = torch.devi

  • Python PyQt5干货满满小项目轻松实现高效抠图去背景

    目录 简介 1.获取API 2.API使用方法 3.可视化桌面制作 4.逻辑实现 5.美化 6.信号与槽绑定 7.全部代码 8.界面展示 简介 结合学习的PyQt5,弄点小项目,做次记录. 此项目是使用了removebg的API,进行实现抠图功能,将人物的背景扣去.将次功能封装到桌面上. 1.获取API 先打开removebg的网站 点击上面的工具和API 再点击API Docs 最后点击Get API Key,当然要先登录 2.API使用方法 在API Docs 下面有使用方法 3.可视化桌面

  • Python pycharm 同时加载多个项目的方法

    在pycharm中只能一个项目存在,想打开另一个项目只能建一个新窗口或者把当前窗口覆盖掉. 在pycharm中其实可以同时打开多个项目: 1.file->setting->project 2.选择project structure,在窗口右侧的add content root 中添加要显示的项目 以上这篇Python pycharm 同时加载多个项目的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • Python开发之Nginx+uWSGI+virtualenv多项目部署教程

    1.新建独立运行环境,命名为env [root@vultr ~]# mkdir projects # 测试的项目总目录 [root@vultr ~]# pip3 install virtualenv [root@vultr ~]# cd projects [root@vultr projects]# virtualenv env --python=python3 --no-site-packages --python:指定Python版本 --no-site-packages:不复制系统已安装P

  • 教你如何用python开发一款数字推盘小游戏

    今年年初,新一季的<最强大脑>开播了,第一集选拔的时候大家做了一个数字游戏,名叫<数字华容道>,当时何猷君以二十几秒的成绩夺得该项目的冠军,看了这个游戏之后我决定要写一个<数字华容道>的程序,过去了半年,我终于记起了这件事,今天就来实现. 数字推盘游戏(n-puzzle)是一种智力游戏,常见的类型有十五数字推盘游戏和八数字推盘游戏等.十五数字推盘游戏的板上会有十五个方块和一个大小相当于一个方块的空位(供方块移动之用),当15个数字依次排序并且最后一个格子为空位即代表挑战

  • 写一个Python脚本自动爬取Bilibili小视频

    我身边的很多小伙伴们在朋友圈里面晒着出去游玩的照片,简直了,人多的不要不要的,长城被堵到水泄不通,老实人想想啊,既然人这么多,哪都不去也是件好事,没事还可以刷刷 B 站 23333 .这时候老实人也有了一个大胆地想法,能不能让这些在旅游景点排队的小伙伴们更快地打发时间呢?考虑到视频的娱乐性和大众观看量,我决定对 B 站新推出的小视频功能下手,于是我跑到B站去找API接口,果不起然,B站在小视频功能处提供了 API 接口,小伙伴们有福了哟! B 站小视频网址在这里哦: http://vc.bili

  • 用Python简单实现个贪吃蛇小游戏(保姆级教程)

    一.前言 本期介绍 Python 练手级项目--贪吃蛇! 原本想推荐一个贪吃蛇的开源项目:python-console-snake,但由于该项目最近一次更新是 8 年前,而且在运行的时候出现了诸多问题.索性我就动手用 Python 重新写了一个贪吃蛇游戏. 下面我们就一起用 Python 实现一个简单有趣的命令行贪吃蛇小游戏,启动命令: git clone https://github.com/AnthonySun256/easy_games cd easy_games python snake

  • 教你使用一行Python代码玩遍童年的小游戏

    写在前面 贪吃蛇,吃豆人,迷宫,井字游戏......这些小游戏我相信大家小的时候肯定玩过,或许在某个时段还沉迷过. 随着年龄的增长,这些小游戏离我们越来越远,但是我相信大家的童心还是一直在的 今天就分享一个真正可以玩耍的GitHub项目 --- free-python-games 安装与使用 python大家都懂的,安装第三方库非常简单 pip install freegames Python 由于该项目中的所有游戏均是基于Python内置模块Turtle制作,所以没有太多依赖,安装不会有困难

随机推荐