首页私人日誌Python+Pygame,见缝插针游戏的实现途径

Python+Pygame,见缝插针游戏的实现途径

admin 10-18 13:37 520次浏览


  小编写这篇文章的主要目的,是给大家介绍下,关于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实现之见缝插针游戏的实现的文章就介绍到这了,希望可以给各位读者带来更多的帮助。


Python+Pygame见缝插针游戏的实现途径
一分快三玩法技巧_一分快三大小单双技巧 一分快三玩法介绍_一分快三赚钱平台推荐
相关内容