【Pygame闯关游戏】手残勿入,最新虐心游戏《见缝插针》——不得不玩的一款游戏。

前言

姥姥说:

炎炎夏日热浪来袭。

有点让人无法忍受。。。

一动就是一身汗。。。。。

想玩点小游戏都没地方玩了。。。

所有文章完整的素材+源码都在👇👇👇👇

文末公众hao自取即可免费哒

【Pygame闯关游戏】手残勿入,最新虐心游戏《见缝插针》——不得不玩的一款游戏。

《见缝插针》游戏小程序好玩吗?《见缝插针》小游戏怎么玩?

只有你想不到,没有我不会敲代码的好游戏! 「良心好游戏 」——栗子同学强势来袭!👇

每天都会推荐好玩的小游戏。 小编今天推荐这款游戏叫《见缝插针》,这是一个考验玩家首脑

协调、反应力的小游戏,这种游戏很常见,居然还没有推荐过!今天赶紧来补上这个类型叭。

(在那种超市或者彩妆店铺门口经常看见, 话说我从来没有闯关过呢!!)

【Pygame闯关游戏】手残勿入,最新虐心游戏《见缝插针》——不得不玩的一款游戏。

正文

PS:小编有话说

据说见缝插针游戏全世界只有六个人能玩到20关,其实不然,小编10分钟之内就能玩到19关,

哈哈哈,不吹牛了,具体是什么情况就让小编来给大家先用代码制作一款见缝插针的Python小

游戏叭!看看你能玩儿到第几关吖?👇

《见缝插针》游戏简介——

关键词:休闲、反应力、协调性、闯关、操作、技巧。

游戏平台:Python版本—栗子同学哦

氪金指数:0氪金。

推荐星数:3.5星(满星5星)

难度星数:4星(满星5星)

小编简评:《见缝插针》是一款考验玩家协调反应力的闯关小游戏。

【Pygame闯关游戏】手残勿入,最新虐心游戏《见缝插针》——不得不玩的一款游戏。

​一、运行环境

1)环境安装👇

Python3、 Pycharm 、Pygame、pgzero、numpy。部分自带模块就不展示

啦。 (如需安装包、激活码等直接 私信我即可安装问题解答都可以的哈~)

 第三方库的安装:pip install pygame 或者 带镜像源

 pip install -i https://pypi.douban.com/simple/ +模块名

2)素材(图片、音乐等)

可自行选择喜欢的图片,背景音乐等等。图片需要放在images文件夹中,音频放在music文件

夹中。images和music文件夹需要和新建的py文件放在同一级 。

二、代码展示

import pgzrun
import random

TITLE = "Python见缝插针" # 窗口标题

background = Actor('background') # 导入背景图片

needles = [] # 存放发射针的列表
startNeedle = Actor('needle',anchor=(170 + 50,1.5)) # 导入针的图片,并设置锚点(旋转轴心)
startNeedle.x = 220
startNeedle.y = 300

difficulty_Needles = [] # 存放干扰的针

rotateSpeed= 1 # 针旋转的速度,默认设置为1
score = 8 # 针的数量,默认设置为8
radius = 80 # 圆盘的半径
record_score = 8 # 记录针的数量,方便切换关卡
level = 1 # 关卡
record_speed = 1 # 记录速度
flag = 0 # 设置标志位,来画干扰的针

r,g,b = random.randint(0,255),random.randint(0,255),random.randint(0,255) # 随机圆盘的颜色

def draw(): # 绘制模块,每帧重复执行
    global flag #全局变量
    if not flag: #将干扰的针添加进列表
        for i in range(int(rotateSpeed)+3):
            difficulty_Needle2 = Actor('needle', anchor=(170 + 50, 1.5))
            difficulty_Needle2.angle = (360 / (int(rotateSpeed) + 2)) * i
            difficulty_Needle2.x = 400
            difficulty_Needle2.y = 300
            needles.append(difficulty_Needle2)
    if rotateSpeed != 0:
        flag = 1
        screen.fill('white') # 白色背景
        screen.draw.filled_circle((400,300),radius,(r,g,b)) # 画圆盘
        screen.draw.text("第{}关".format(level),(320,10),fontsize=60,fontname="simhei",color='black') # 显示关卡
        if score < 10: # &#x663E;&#x793A;&#x5206;&#x6570;&#xFF0C;&#x8FD9;&#x91CC;&#x7528;&#x5224;&#x65AD;&#x8BED;&#x53E5;&#x6765;&#x533A;&#x5206;&#x4E00;&#x4F4D;&#x6570;&#x548C;&#x4E24;&#x4F4D;&#x6570;&#xFF0C;&#x4F4D;&#x7F6E;&#x7A0D;&#x6709;&#x4E0D;&#x540C;
            screen.draw.text(str(score), (385, 275), fontsize=80, color='white')
        else:
            screen.draw.text(str(score), (370, 275), fontsize=80, color='white')
        screen.draw.text("Speed : {}".format(rotateSpeed), (20, 270), fontsize=35, color='red') # &#x663E;&#x793A;&#x901F;&#x5EA6;
        startNeedle.draw() # &#x753B;&#x521D;&#x59CB;&#x7684;&#x9488;
        for difficulty_Needle in difficulty_Needles: # &#x5FAA;&#x73AF;&#x904D;&#x5386;&#x753B;&#x51FA;&#x5E72;&#x6270;&#x7684;&#x9488;
            difficulty_Needle.draw()
        for needle in needles: # &#x5FAA;&#x73AF;&#x904D;&#x5386;&#x753B;&#x51FA;&#x53D1;&#x5C04;&#x51FA;&#x53BB;&#x7684;&#x9488;
            needle.draw()
    else: # &#x5931;&#x8D25;&#x540E;&#x7684;&#x573A;&#x666F;
        screen.clear()  # &#x6E05;&#x5C4F;
        background.draw() # &#x753B;&#x80CC;&#x666F;
        screen.draw.text('Game Over!', (200, 200), fontsize=100, color='red')  # &#x753B;&#x6587;&#x672C;
        screen.draw.text('&#x518D;&#x8BD5;&#x4E00;&#x6B21;', (230, 400), fontsize=25, fontname="simhei", color='green')
        screen.draw.text('&#x9000;&#x51FA;&#x6E38;&#x620F;', (450, 400), fontsize=25, fontname="simhei", color='green')

def update(): # &#x66F4;&#x65B0;&#x6A21;&#x5757;&#xFF0C;&#x6BCF;&#x5E27;&#x91CD;&#x590D;&#x6267;&#x884C;
    # &#x8BA9;&#x9488;&#x65CB;&#x8F6C;
    for needle in needles:
        needle.angle += rotateSpeed
    for difficulty_Needle in difficulty_Needles:
        difficulty_Needle.angle += rotateSpeed

def on_key_down(): # &#x6309;&#x952E;&#x68C0;&#x6D4B;
    global rotateSpeed,score,level,record_score,record_speed,flag # &#x5168;&#x5C40;&#x53D8;&#x91CF;
    newNeedle = Actor('needle', anchor=(170 + 50, 1.5)) # &#x65B0;&#x5EFA;&#x4E00;&#x6839;&#x9488;
    newNeedle.x = 400 # &#x65B0;&#x5EFA;&#x9488;&#x7684;x&#x5750;&#x6807;
    newNeedle.y = 300 # &#x65B0;&#x5EFA;&#x9488;&#x7684;y&#x5750;&#x6807;
    for needle in needles: # &#x5224;&#x65AD;&#x53D1;&#x5C04;&#x9488;&#x662F;&#x5426;&#x78B0;&#x5230;&#x5176;&#x4ED6;&#x9488;&#xFF0C;&#x5982;&#x679C;&#x78B0;&#x5230;&#x5C31;&#x505C;&#x6B62;&#x8F6C;&#x52A8;
        if newNeedle.colliderect(needle):
            rotateSpeed = 0
            music.play_once("&#x5931;&#x8D25;") # &#x5931;&#x8D25;&#x97F3;&#x6548;
    needles.append(newNeedle) # &#x5C06;&#x65B0;&#x521B;&#x5EFA;&#x7684;&#x9488;&#x52A0;&#x5165;&#x5217;&#x8868;
    if rotateSpeed > 0:
        score -= 1 # &#x6BCF;&#x53D1;&#x5C04;&#x4E00;&#x6839;&#x9488;&#x7684;&#x6570;&#x91CF;&#x5C31;&#x51CF;1
        if score == 0: # &#x5F53;&#x9488;&#x7684;&#x6570;&#x91CF;&#x51CF;&#x5230;&#x96F6;&#x65F6;&#xFF0C;&#x8981;&#x5207;&#x6362;&#x5173;&#x5361;&#xFF0C;&#x589E;&#x52A0;&#x96BE;&#x5EA6;
            needles.clear() # &#x6E05;&#x9664;&#x53D1;&#x5C04;&#x9488;&#x5217;&#x8868;
            record_score += 2 # &#x9488;&#x7684;&#x6570;&#x91CF;&#x53D8;&#x591A;
            score = record_score
            level += 1 # &#x5173;&#x5361;&#x53D8;&#x66F4;
            rotateSpeed += 0.5 # &#x901F;&#x5EA6;&#x52A0;&#x5FEB;
            record_speed = rotateSpeed
            flag = 0 # &#x5C06;&#x6807;&#x5FD7;&#x4F4D;&#x7F6E;&#x96F6;&#xFF0C;&#x91CD;&#x65B0;&#x7ED8;&#x5236;&#x5E72;&#x6270;&#x9488;
        music.play_once('&#x53D1;&#x5C04;') # &#x53D1;&#x5C04;&#x97F3;&#x6548;

def on_mouse_down(pos, button): # &#x9F20;&#x6807;&#x68C0;&#x6D4B;
    global rotateSpeed,record_speed,score,flag # &#x5168;&#x5C40;&#x53D8;&#x91CF;
    if button == mouse.LEFT and pos[0] > 445 and pos[0] < 555 and pos[1] > 395 and pos[1] < 435: # &#x5982;&#x679C;&#x9F20;&#x6807;&#x5DE6;&#x952E;&#x6309;&#x4E0B;&#x9000;&#x51FA;&#x6E38;&#x620F;
        exit() # &#x9000;&#x51FA;&#x6E38;&#x620F;
    if button == mouse.LEFT and pos[0] > 225 and pos[0] < 335 and pos[1] > 395 and pos[1] < 435: # &#x5982;&#x679C;&#x9F20;&#x6807;&#x5DE6;&#x952E;&#x6309;&#x4E0B;&#x518D;&#x8BD5;&#x4E00;&#x6B21;
        rotateSpeed = record_speed # &#x91CD;&#x7F6E;&#x901F;&#x5EA6;
        needles.clear() # &#x6E05;&#x7A7A;&#x53D1;&#x5C04;&#x9488;&#x7684;&#x5217;&#x8868;
        score = record_score # &#x91CD;&#x7F6E;&#x9488;&#x7684;&#x6570;&#x91CF;
        flag = 0 # &#x5C06;&#x6807;&#x5FD7;&#x4F4D;&#x7F6E;&#x96F6;&#xFF0C;&#x7528;&#x4E8E;&#x91CD;&#x65B0;&#x7ED8;&#x5236;&#x5E72;&#x6270;&#x9488;

pgzrun.go() # &#x5F00;&#x59CB;&#x6267;&#x884C;&#x6E38;&#x620F;

【Pygame闯关游戏】手残勿入,最新虐心游戏《见缝插针》——不得不玩的一款游戏。

【Pygame闯关游戏】手残勿入,最新虐心游戏《见缝插针》——不得不玩的一款游戏。

【Pygame闯关游戏】手残勿入,最新虐心游戏《见缝插针》——不得不玩的一款游戏。

​总结

玩家需要在合适的时机,在关卡内插完针,大多数关卡都很简单,9、10、11关、、、等级越

高会比越难一点,稍微操作不慎就凉凉了!感兴趣的小伙伴可以试试。老规矩源码素材等免费

拿的哈!👇👇👇👇👇👇

✨完整的素材源码等:可以滴滴我吖!或者点击文末hao自取免费拿的哈~

😘往期推荐阅读——

项目1.6 【Pygame小游戏】斗地主我见多了,BUT 这款开源欢乐斗地主,最让人服气~

项目3.1 【Pygame实战】如果你是赛车爱好者:这款新赛车游戏分分钟让你上瘾(超跑又是谁的梦想?)

项目3.2 【Pygame小游戏】炸裂全场、超级炸弹人”爆炸”登场,这是你的童年嘛?

项目2.2 【Pygame小游戏】扫雷游戏50多岁了,但这款我能玩一年~(三个版本集合)

项目2.3 战疫互动|宅家防疫,”消灭新冠病毒”小游戏火爆上线啦~(附完整源码)

🎁文章汇总——

Python文章合集 | (入门到实战、游戏、Turtle、案例等)

(文章汇总还有更多你案例等你来学习啦~源码找我即可免费!)

【Pygame闯关游戏】手残勿入,最新虐心游戏《见缝插针》——不得不玩的一款游戏。

【Pygame闯关游戏】手残勿入,最新虐心游戏《见缝插针》——不得不玩的一款游戏。

Original: https://blog.csdn.net/xy258009/article/details/125755597
Author: 嗨!栗子同学
Title: 【Pygame闯关游戏】手残勿入,最新虐心游戏《见缝插针》——不得不玩的一款游戏。

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/780666/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • python+selenium+pytesseract识别图片验证码

    Original: https://www.cnblogs.com/sn520/p/15777998.htmlAuthor: Python可乐呀Title: python+sele…

    Python 2023年5月24日
    062
  • 2023年计划,步入工作的第6年

    好几年没写计划了,有些浑浑噩噩,过上了一段躺平的生活。 因为上篇博客收到了很多评论,有人评论:想让我写一下躺平后的生活,也有人评论:为啥分手的?(PS上篇博客《工作5年的老程序员的…

    Python 2023年10月11日
    027
  • 分布式注册服务中心etcd在云原生引擎中的实践

    作者:王雷 etcd是什么 etcd是云原生架构中重要的基础组件,由CNCF孵化托管。ETCD是用于共享配置和服务发现的分布式,一致性的KV存储系统,是CoreOS公司发起的一个开…

    Python 2023年10月11日
    035
  • FastAPI 学习之路(五十四)startup 和 shutdown

    我们在实际的开发中呢,总会遇到这样的场景,我们想在启动或者终止的时候,做一些事情,那么应该如何实现呢,其实也是很简单。fastapi提供了这样的操作。 那么,让我们来看看它是如何实…

    Python 2023年5月25日
    062
  • python接口测试框架哪个好_python 接口测试框架 :unittest和pytest对比

    一 、用例编写规则 unittest提供了test cases、test suites、test fixtures、test runner相关的类,unittest编写用例规则: …

    Python 2023年9月12日
    035
  • [HCTF 2018]admin

    这道题涉及知识面很多,解题姿势多,故单独拿来写一篇文章。 文章目录 姿势一:弱口令登录 姿势二:flask的session伪造 * – – SECRET_K…

    Python 2023年8月11日
    035
  • 爬虫之Scrapy框架

    Scrapy框架基础知识 安装 pip install scrapy 扩展错误解决 安装错误解决 buliding ‘twisted.test.raiser’ extension …

    Python 2023年10月6日
    025
  • 彻底卸载并重装Anaconda环境与Python的方法

    本文介绍在 Windows平台下,彻底删除 Anaconda环境与其自带 Python版本,并进行重新安装的方法。 最近,由于原有 Anaconda环境中的部分第三方库出现了冲突的…

    Python 2023年10月7日
    055
  • 面试心经

    背景 本人一出校园,除了在帝都工作过一年,回到故乡省会城市后,一直在一家单位工作,2016年到现在,已经6个年头,当年1个人,1台电脑的居民楼小单位,逐渐演变成了一家5个部门,好多…

    Python 2023年10月16日
    035
  • 1分钟爬取全国高校信息+源码+数据可视化

    Original: https://www.cnblogs.com/123456feng/p/16175652.htmlAuthor: 蚂蚁ailingTitle: 1分钟爬取全国…

    Python 2023年5月24日
    073
  • Python中的print()语句

    Python中print()语句的相关使用 介绍 print()函数可以将输出的信息打印出来,即发送给标准输出流。Python中可以直接使用print()函数,将信息展示在控制台 …

    Python 2023年5月23日
    086
  • Pywifi用法-python

    Pywifi – python用法 凉沐流风 – 枫 一、目录 1.目录 2.pywifi的介绍与下载 3.pywifi基础 4.pywifi详细教程 5….

    Python 2023年6月15日
    0107
  • 内部类调用外部类的this方法

    posted @2022-08-29 20:05 司徒小夜 阅读(3 ) 评论() 编辑 Original: https://www.cnblogs.com/stblack/p/1…

    Python 2023年6月11日
    060
  • 小白之Python基础(三)

    列表和元组 1、列表:最常用的 Python 数据类型(可变的数据类型) 1)列表是一个值,它包含多个值构成的序列; 2)通过[ ]或list()创建的有序元素的集合; 3)表项(…

    Python 2023年6月12日
    061
  • 《精通Python爬虫框架Scrapy》前言

    让我来做一个大胆的猜测。下面的两个故事之一会和你的经历有些相似。 你与Scrapy的第一次相遇是在网上搜索类似”Web scraping Python”的内…

    Python 2023年10月7日
    026
  • python装饰器详解

    python中的装饰器(decorator)一般采用语法糖的形式,是一种语法格式。比如:@classmethod,@staticmethod,@property,@xxx.sett…

    Python 2023年7月31日
    055
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球