见缝插针(Python

  • 直接看效果吧!
  • 上代码

直接看效果吧!

上代码

import pgzrun
import randomTITLE = "Python见缝插针" # 窗口标题background = Actor('background') # 导入背景图片needles = [] # 存放发射针的列表
startNeedle = Actor('needle',anchor=(170 + 50,1.5)) # 导入针的图片,并设置锚点(旋转轴心)
startNeedle.x = 220
startNeedle.y = 300difficulty_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)) * idifficulty_Needle2.x = 400difficulty_Needle2.y = 300needles.append(difficulty_Needle2)if rotateSpeed != 0:flag = 1screen.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: # 显示分数,这里用判断语句来区分一位数和两位数,位置稍有不同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') # 显示速度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('Game Over!', (200, 200), fontsize=100, color='red')  # 画文本screen.draw.text('再试一次', (230, 400), fontsize=25, fontname="simhei", color='green')screen.draw.text('退出游戏', (450, 400), fontsize=25, fontname="simhei", color='green')def update(): # 更新模块,每帧重复执行# 让针旋转for needle in needles:needle.angle += rotateSpeedfor difficulty_Needle in difficulty_Needles:difficulty_Needle.angle += rotateSpeeddef on_key_down(): # 按键检测global rotateSpeed,score,level,record_score,record_speed,flag # 全局变量newNeedle = Actor('needle', anchor=(170 + 50, 1.5)) # 新建一根针newNeedle.x = 400 # 新建针的x坐标newNeedle.y = 300 # 新建针的y坐标for needle in needles: # 判断发射针是否碰到其他针,如果碰到就停止转动if newNeedle.colliderect(needle):rotateSpeed = 0music.play_once("失败") # 失败音效needles.append(newNeedle) # 将新创建的针加入列表if rotateSpeed > 0:score -= 1 # 每发射一根针的数量就减1if score == 0: # 当针的数量减到零时,要切换关卡,增加难度needles.clear() # 清除发射针列表record_score += 2 # 针的数量变多score = record_scorelevel += 1 # 关卡变更rotateSpeed += 0.5 # 速度加快record_speed = rotateSpeedflag = 0 # 将标志位置零,重新绘制干扰针music.play_once('发射') # 发射音效def on_mouse_down(pos, button): # 鼠标检测global rotateSpeed,record_speed,score,flag # 全局变量if button == mouse.LEFT and pos[0] > 445 and pos[0] < 555 and pos[1] > 395 and pos[1] < 435: # 如果鼠标左键按下退出游戏exit() # 退出游戏if button == mouse.LEFT and pos[0] > 225 and pos[0] < 335 and pos[1] > 395 and pos[1] < 435: # 如果鼠标左键按下再试一次rotateSpeed = record_speed # 重置速度needles.clear() # 清空发射针的列表score = record_score # 重置针的数量flag = 0 # 将标志位置零,用于重新绘制干扰针pgzrun.go() # 开始执行游戏

见缝插针(Python)相关推荐

  1. 《Python游戏趣味编程》 第6章 见缝插针

    6 见缝插针 Python游戏开发 图书简介可以看这里: 童晶:<Python游戏趣味编程>新书上架了 本章我们将编写一个见缝插针的游戏.按下空格键后发射一根针到圆盘上,所有发射的针跟着圆 ...

  2. Python版见缝插针小游戏源代码,球球旋转大作战源程序

    见缝插针游戏是一款非常考验玩家手眼协调能力的休闲益智虐心虐脑小游戏,玩法很简单,但要过关却很有挑战性哟! 主要是将一系列的小球,插入到旋转的摩天轮转盘当中,插入过程中不能碰到旋转的摩天轮上的其他小球, ...

  3. python游戏程序-Python游戏趣味编程

    书名:Python游戏趣味编程 定价:69.0 ISBN:9787115538246 作者:童晶 版次:第1版 出版时间:2020-07 内容提要: 本书把趣味游戏开发应用于Python编程教学,通过 ...

  4. 《Python游戏趣味编程》新书上架了

    <Python游戏趣味编程>案例视频 <Python游戏趣味编程>新书上架了,目前京东.淘宝.当当上搜书名就可以找到,比如: https://item.jd.com/12899 ...

  5. python游戏编程

    前言:本人接触的第一本编程书,记录下自学历程,希望有共同爱好的朋友一起探讨,共同进步,我会在B站上发表都代码的解读,最后感谢童晶老师 第一章  python的开发环境 在python官网下载最新版本的 ...

  6. python趣味编程100例-Python游戏趣味编程

    书名:Python游戏趣味编程 定价:69.0 ISBN:9787115538246 作者:童晶 版次:第1版 出版时间:2020-07 内容提要: 本书把趣味游戏开发应用于Python编程教学,通过 ...

  7. 见缝插针 一个小游戏

    2019独角兽企业重金招聘Python工程师标准>>> <!DOCTYPE html> <html lang="en"> <head ...

  8. python 小说生成_万字长文神器,原来只是固定数据库排列组合而成

    原标题:万字长文神器,原来只是固定数据库排列组合而成 作为一个媒体狗,每天起床的第一件事就是找选题,写稿,写稿,还是写稿. 近日,宅客频道小编听说了一个写文章神器,据说只要输入任意关键词,马上就能拥有 ...

  9. Cocos2dx游戏教程(一):“见缝插针”,游戏项目的搭建

    前篇文章展示了"见缝插针"的游戏截图,下面带领大家一步一步完成自己的小游戏吧,前提是cocos2dx环境已经搭好了哦,官网有搭建的详细教程,这里不多说啦 cocos2dx 英文官网 ...

最新文章

  1. php如何防止消息被篡改,php如何用libevent处理rabbitmq发来的消息,防止消息丢失或者人为的中断导致消息没有被处理完整...
  2. 斯坦福CS229机器学习课程的数学基础(概率论)翻译完成
  3. CVE-2019-0708复现
  4. [原创]互联网金融App测试介绍
  5. python 命令行 解析模块 optparse、argparse
  6. pycocotools安装_pycocotools安装问题
  7. 《Qt 数据库详解》博客系列文章
  8. 《变革中的思索》连载六:IT=IP+IQ
  9. Node.js连接mysql报加密方式错误解决方案
  10. 在 Mac 上如何获取扩展来自定 Safari 浏览器?
  11. 世界第一个无人机快递网络下月在瑞士运营 物品 30 分钟内可达
  12. java怎么销毁session_java怎么销毁session?
  13. x86汇编指令集大全(带注释)
  14. 6U VPX 高性能数据存储板 (2 片XC7K325T)
  15. SpringCloud Netflix—微服务架构
  16. 详解VB对话框InputBox和MsgBox
  17. 增长黑客,创业公司的用户与收入增长秘籍
  18. 数学在计算机方面的应用论文参考文献,应用数学毕业论文参考文献精选
  19. python最佳身高_Python+sklearn使用线性回归算法预测儿童身高
  20. Qt QAxObject操作excel文件过程总结

热门文章

  1. POJ1390 方盒游戏
  2. 编译内核报错——Failed to generate BTF for vmlinux
  3. Datawhale 知识图谱组队学习 之 Task 1 知识图谱介绍
  4. 【日记】纪念我的第一个1024
  5. Java Spring框架入门详解教程【多测师_何sir】
  6. Python学习 Python3.5+PyQt5环境--------02、代码与界面GUI分离
  7. UE4 直升机项目文档
  8. 小程序毕设作品之微信电子书阅读小程序毕业设计(4)开题报告
  9. Python画PM2.5时间序列图
  10. 电脑电流,电脑有电流怎么办?在YY上说话总是出现吱吱 – 手机爱问