Python+Pygame,见缝插针游戏的实现途径
小编写这篇文章的主要目的,是给大家介绍下,关于Python+Pygame,这一见缝插针游戏实习的途径,下面是具体的代码实例,希望可以给各位读者带来帮助。
前言:
奶奶说:
这个夏天真的是有点热啊。
热的简直让人无法忍受。。。
身体一动就会出汗。。。。。
想玩点小游戏都没地方玩了。。。
《见缝插针》这个游戏好玩吗?《见缝插针》它到底怎么玩呢?
只要是你能想到的,这些游戏代码,我统统都会敲!「良心好游戏推荐」——栗子同学强势来袭!
每天都会推荐好玩的小游戏。小编今天推荐这款游戏叫《见缝插针》,这是一个考验玩家首脑协调、反应力的小游戏,这种游戏很常见,居然还没有推荐过!今天赶紧来补上这个类型叭。
(在那种超市或者彩妆店铺门口经常看见,话说我从来没有闯关过呢!!)
PS:小编有话说
据说见缝插针游戏全世界只有六个人能玩到20关,其实不然,小编10分钟之内就能玩到19关,
哈哈哈,不吹牛了,具体是什么情况就让小编来给大家先用代码制作一款见缝插针的Python小游戏叭!看看你能玩儿到第几关吖?
《见缝插针》游戏简介——
关键词:休闲、反应力、协调性、闯关、操作、技巧。
游戏平台:Python版本—栗子同学哦
氪金指数:0氪金。
推荐星数:3.5星(满星5星)
难度星数:4星(满星5星)
小编简评:《见缝插针》是一款考验玩家协调反应力的闯关小游戏。
一、运行环境
1)环境安装
Python3、Pycharm、Pygame、pgzero、numpy。部分自带模块就不展示啦。
第三方库的安装:pip install pygame或者带镜像源
pip install-i https://pypi.douban /simple/+模块名
2)素材(图片、音乐等)
可自行选择喜欢的图片,背景音乐等等。图片需要放在images文件夹中,音频放在music文件夹中。images和music文件夹需要和新建的py文件放在同一级。
二、代码展示
import pgzrun import random TITLE= Python见缝插针 #窗口标题 background=Actor( 39;background 39;)#导入背景图片 needles=[]#存放发射针的列表 startNeedle=Actor( 39;needle 39;,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( 39;needle 39;,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( 39;white 39;)#白色背景 screen.draw.filled_circle((400,300),radius,(r,g,b))#画圆盘 screen.draw.text( 第{}关 .format(level),(320,10),fontsize=60,fontname= simhei ,color= 39;black 39;)#显示关卡 if score lt;10:#显示分数,这里用判断语句来区分一位数和两位数,位置稍有不同 screen.draw.text(str(score),(385,275),fontsize=80,color= 39;white 39;) else: screen.draw.text(str(score),(370,275),fontsize=80,color= 39;white 39;) screen.draw.text( Speed:{} .format(rotateSpeed),(20,270),fontsize=35,color= 39;red 39;)#显示速度 startNeedle.draw()#画初始的针 for difficulty_Needle in difficulty_Needles:#循环遍历画出干扰的针 difficulty_Needle.draw() for needle in needles:#循环遍历画出发射出去的针 needle.draw() else:#失败后的场景 screen.clear()#清屏 background.draw()#画背景 screen.draw.text( 39;Game Over! 39;,(200,200),fontsize=100,color= 39;red 39;)#画文本 screen.draw.text( 39;再试一次 39;,(230,400),fontsize=25,fontname= simhei ,color= 39;green 39;) screen.draw.text( 39;退出游戏 39;,(450,400),fontsize=25,fontname= simhei ,color= 39;green 39;) def update():#更新模块,每帧重复执行 #让针旋转 for needle in needles: needle.angle+=rotateSpeed for difficulty_Needle in difficulty_Needles: difficulty_Needle.angle+=rotateSpeed def on_key_down():#按键检测 global rotateSpeed,score,level,record_score,record_speed,flag#全局变量 newNeedle=Actor( 39;needle 39;,anchor=(170+50,1.5))#新建一根针 newNeedle.x=400#新建针的x坐标 newNeedle.y=300#新建针的y坐标 for needle in needles:#判断发射针是否碰到其他针,如果碰到就停止转动 if newNeedle.colliderect(needle): rotateSpeed=0 music.play_once( 失败 )#失败音效 needles.append(newNeedle)#将新创建的针加入列表 if rotateSpeed gt;0: score-=1#每发射一根针的数量就减1 if score==0:#当针的数量减到零时,要切换关卡,增加难度 needles.clear()#清除发射针列表 record_score+=2#针的数量变多 score=record_score level+=1#关卡变更 rotateSpeed+=0.5#速度加快 record_speed=rotateSpeed flag=0#将标志位置零,重新绘制干扰针 music.play_once( 39;发射 39;)#发射音效 def on_mouse_down(pos,button):#鼠标检测 global rotateSpeed,record_speed,score,flag#全局变量 if button==mouse.LEFT and pos[0] gt;445 and pos[0] lt;555 and pos[1] gt;395 and pos[1] lt;435:#如果鼠标左键按下退出游戏 exit()#退出游戏 if button==mouse.LEFT and pos[0] gt;225 and pos[0] lt;335 and pos[1] gt;395 and pos[1] lt;435:#如果鼠标左键按下再试一次 rotateSpeed=record_speed#重置速度 needles.clear()#清空发射针的列表 score=record_score#重置针的数量 flag=0#将标志位置零,用于重新绘制干扰针 pgzrun.go()#开始执行游戏
三、效果展示
总结
玩家需要在合适的时机,在关卡内插完针,大多数关卡都很简单,9、10、11关、、、等级越高会比越难一点,稍微操作不慎就凉凉了!
到此这篇关于Python+Pygame实现之见缝插针游戏的实现的文章就介绍到这了,希望可以给各位读者带来更多的帮助。