python 飞翔的小鸟

mainvoid  #音效存放picture #图片存放need #各种计算相关的函数play.py #运行db.db #数据库loadding.py #对图片进行加载

在这里插入图片描述
下面为主逻辑部分

def MainGame(info):#主游戏模块global distance,bird_x,bird_y,mask,tempname , level , default , color = inforeal_bg=random.choice(bg)level=dict_[level]mask ={}upper_img=pipe['green'][0]# 获得图像lower_img = pygame.transform.rotate(upper_img , 180)#翻转图像#管道距离mask['bird'] = (getHitmask(bird_c[color]))mask['pipe'] = (getHitmask(pipe['green'][0]) ,getHitmask(pipe['green'][1]) ,)mask['box']=(getHitmask(box))score=57#分数distance = distance_-level*20 #每个的距离bet=200-10*levelcount=distance #为了pipe距离一致进行的计算bird_x = 57  #鸟的初始坐标bird_y=190if default=='简单':far=easy #设置画面速度elif default=='一般':far=commontelse:far=difficultrotate=60 #角度v=0 #加速度g_v=0.5 #设置画面加速度g_v_=2 #起始下落速度cc=bird_c[color]#鸟的颜色box_x=[]box_y=[]x=[]far_=faru_y=[]l_y=[]v_=0counter=0while True:screen.blit(real_bg , (0 , 0))for event in pygame.event.get():if event.type==QUIT:pygame.display.quit()elif event.type==KEYDOWN and (event.key==K_SPACE or event.key==K_UP):m['wing'].play()v=8v_=rotateg_v_=2if v>0:cc=pygame.transform.rotate(bird_c[color],v_/2)bird_y-=vv_-=8v-=1else:v_-=1cc=pygame.transform.rotate(bird_c[color],v_)g_v_+=g_vbird_y+=(g_v_)#上面是飞行机制if count>=distance:count=0x.append(388)u_yy,l_yy=get_pipe(bet)u_y.append(u_yy)l_y.append(l_yy)#下面定义道具出现在俩个管道之间b_count = random.randint(1 , 10)if b_count < 10 * box_pro:box_x.append(random.randint(440 , 440 + distance-70))box_y.append(random.randint(100 , 300))#贴上管道if counter>0:if big:cc=pygame.transform.scale2x(cc)  #处于大状态if fast:passif small:cc=pygame.transform.scale(cc, (17, 12))else:far=far_fast=Falsebig=Falsefor x_,u_y_,l_y_ in zip(x,u_y,l_y):if x_<-100:del x[0],u_y[0],l_y[0]screen.blit(upper_img,(x_,u_y_))screen.blit(lower_img,(x_,l_y_))for i in range(len(x)):x[i]-=far#贴上道具box_crash =check_crash(cc,box_x,box_y,img=box)if box_crash[0][0]:for b_x,b_y in zip(box_x,box_y):if b_x>55 and b_x<130:del box_x[box_x.index(box_crash[1])],box_y[box_y.index(box_crash[2])]far=far_big=Falsesmall=Falsetmp=random.randint(1,3)if tmp==1:big=Trueelif tmp==2:fast=Truefar_=farfar-=slowedelse:small=Truecounter=box_timecount+=farfor b_x,b_y in zip(box_x,box_y):if b_x<-100:del box_x[0],box_y[0]screen.blit(box,(b_x,b_y))for i in range(len(box_x)):box_x[i]-=farscore+=farrel_score=int((score-438+distance)/(distance))if rel_score<=0:rel_score=0;rel_score_=0if rel_score>rel_score_:m['point'].play()rel_score_=rel_scoreindex=0for i in str(rel_score):screen.blit(score_group[i],(200+index*30,10))index+=1counter-=4crash_test=check_crash(cc,x,u_y,l_y)if crash_test[0][0] and big==False:m['die'].play()return cc,bird_x,bird_y,name , level , default,rel_score_ #返回鸟的坐标if crash_test[0][0] and big==True:del u_y[u_y.index(crash_test[1])],l_y[l_y.index(crash_test[2])],x[x.index(crash_test[3])]rel_score+=distanceif cc.get_height()+bird_y>=410 or bird_y<=0:m['die'].play()return cc,bird_x,bird_y,name , level , default,rel_score_screen.blit(cc,(bird_x,bird_y))temp = -((-temp + 4) % 48)screen.blit(move , (temp , base))clock.tick(30)pygame.display.update()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/68219.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PAT 1118 Birds in Forest(并查集)

题目链接:1118 Birds in Forest 原本以为自己代码写得很丑&#xff0c;特别是对每组中头节点的处理时&#xff0c;总感觉自己错了&#xff0c;但是看了好多人写的答案&#xff0c;发现自己代码还算是写的比较漂亮的。注意最后的并集操作啊&#xff0c;就是u 附上一个并查集写…

Python游戏 (胖鸟快飞Flappybird)

python游戏开发&#xff1a;&#xff08;胖鸟快飞&#xff09; 利用python提供的第三方库pygame和python的基础语法来开发此款小游戏&#xff0c;此款游戏代码行数不超过100行&#xff0c;即使是初学者也可以轻松的了解。最重要的是&#xff0c;通过此款游戏不仅打结实了pytho…

234树到红黑树

2-3-4 树 1. 2-3-4树的定义 2-3-4树是一种阶为4的B树。它是一种自平衡的数据结构&#xff0c;可以保证在O(lgn)的时间内完成查找、插入和删除操作。它主要满足以下性质&#xff1a; &#xff08;1&#xff09;每个节点每个节点有1、2或3个key&#xff0c;分别称为2&#xff…

飞翔小鸟思路及代码

昨天跳着看视频把飞翔小鸟做出来了&#xff0c;下面分享一下我的思路。 先放成品图 和上一篇飞机大战的思路相似&#xff1a; 1.先把窗体做出把背景图放在面板中 2.把游戏背景中地面移动实现 3.把柱子在面板中实现进场及移动 4.把小鸟放在面板中 5.鼠标监听控制小鸟飞行轨…

luogu p4556 [Vani有约会]雨天的尾巴 树上差分,最近公共祖先,线段树合并

命运的选择 题意神一般的过程及题解. 本来有信仰用 m a p map map套 s e t set set跑过去的,结果调了一天都没调出来,时间还比暴力都慢.只好写线段树合并. 题意 给 一 棵 树 , 每 次 用 一 种 颜 色 覆 盖 树 上 一 条 路 径 . 求 每 一 个 点 覆 盖 次 数 最 多 的 颜 色 , 如…

一文详解数字源表

一、数字源表的基本功能 集多种功能为一体的精密测量仪器&#xff0c;主要是测量电气性能 SMU可以当电源,万用表或电源/测量组合. 当电源时&#xff1a; 可编程电压源 可编程电流源 当万用表时&#xff1a; 数字电压表(电流源,输出电流为0,测电压) 数字电流表(电压源,输…

1044 火星数字( ( ఠൠఠ )搞我心态 )【!!常看!!】

火星人是以 13 进制计数的&#xff1a; 地球人的 0 被火星人称为 tret。地球人数字 1 到 12 的火星文分别为&#xff1a;jan, feb, mar, apr, may, jun, jly, aug, sep, oct, nov, dec。火星人将进位以后的 12 个高位数字分别称为&#xff1a;tam, hel, maa, huh, tou, kes, h…

机械制图之图线基础知识

1.图线的型式 1)常用基本图线: 8 种。 粗实线、细实线、细虚线、细点画线、波浪线、细双点画线、双折线、粗点画线。 2)线宽: 粗、细两种。 线宽比2:1 &#xff0c; 粗线宽度优先采用0.5 mm、0.7㎜。 不同的线型具有不同的含义。 2.图线的应用 3.图线的画法 1)同一图样中同…

机械制图哪个软件好用?浩辰CAD机械2021你值得拥有!

浩辰CAD机械 2021不仅能完美兼容主流CAD设计数据&#xff0c;还拥有业内更完备的智能专业设计功能&#xff0c;集机械制图、机构设计和数据管理等功能模块于一体。本篇机械制图CAD教程小编将详细介绍浩辰CAD机械 2021&#xff0c;帮助大家更好地了解和上手这款最新版本CAD软件。…

UML画图工具汇总

最近学习了UML&#xff0c;搜集了一把各类的画图工具以及它们的特点。最后选出我认为最好用的一款工具。 rose 《大象》书里面就是用的这款软件&#xff0c;但是这个貌似要钱&#xff0c;破解版版本很低&#xff0c;界面看起来也比较复古。不推荐。 star uml 挺有名的软件&…

超详细的热图绘制教程(5000余字),真正的保姆级教程

生物信息学习的正确姿势 NGS系列文章包括NGS基础、高颜值在线绘图和分析、转录组分析 &#xff08;Nature重磅综述|关于RNA-seq你想知道的全在这&#xff09;、ChIP-seq分析 &#xff08;ChIP-seq基本分析流程&#xff09;、单细胞测序分析 (重磅综述&#xff1a;三万字长文读懂…

机械制图-画、读组合体的视图

制图是什么&#xff1f;制图就是投影&#xff01; 依照惯例&#xff0c;雷老师上课前还是带领大家复习了上节课组合体的组合形式和物体分类的知识点&#xff0c;并且讲解了上次作业中需要注意的问题。比如对于涉及弧的问题&#xff0c;一些人没有投影线&#xff0c;一般点和特…

超好用的两款作图工具,用起来~~~

前言 作为程序员&#xff0c;项目开发过程中肯定会需要画一大堆图&#xff0c;原型图、流程图、UML图、思维导图、拓扑图等等&#xff0c;找到一个好工具肯定是能大大提高工作效率&#xff0c;这里就来分享两款我平时用得比较多的画图工具(这不是广告&#xff0c;也不是推广&a…

机械制图——常见的机件表达

文章目录 标准件与常用件1. 螺纹与螺纹紧固件螺纹旋合画法螺栓装配简化画法螺钉装配简化画法双头螺钉装配简化画法六角头螺栓连接画法双头螺柱连接画法开槽圆柱头螺钉连接画法开槽沉头螺钉连接画法 2. 键&#xff08;平键&#xff09;3. 销圆柱销圆锥销 4. 齿轮 零件图与装配图…

绘图小能手gunplot

下面的安装过程是在ubuntu20.04上进行的。 安装gnuplot需要依赖lua5.2。所以先安装lua5.2。 安装lua5.2 下载安装包 wget http://www.tecgraf.puc-rio.br/lua/ftp/lua-5.2.0.tar.gz编译安装lua5.2 解压后进入源码目录 make linux sudo make install安装gnuplot gnuplot主…

CAD机械制图入门知识

在计算机技术不断发展的过程中&#xff0c;CAD技术水平也得到了很大的提升&#xff0c;这使得CAD技术在机械制图当中的使用范围越来越大。CAD是常用的制图软件&#xff0c;具有很强的功能性&#xff0c;特别是在3D制图方面CAD有着较强的实用性。 对于大部分的人来说&#xff0c…

机械制图笔记

机械图纸上Φ50H7什么意思&#xff1f; 一般代表直径50的孔&#xff0c;H7的公差在这里是0.025mm/-0mm。 理论值M6的外径就是6毫米&#xff0c;实际上达不到&#xff0c;因为螺纹的尖顶都是圆角,通过查表m6的最大外径是5.92MM,这是基本数值。 机械制图中EQS&#xff0c;表示…

使用MapBox自定义地图

一、什么是MapBox&#xff0c;相对国内地图厂商的优势 MapBox是一家美国的地图厂商&#xff0c;2010 年成立于美国华盛顿&#xff0c;2017 年获得软银 1.64 亿美元 C 轮融资&#xff0c;完全开源的开发工具&#xff0c;帮助您在现有产品中实现灵活、轻量、稳定的地图、搜索、导…

企业网络设计,看这6个案例就够了

百度、美团的网络我们都可以称他们为企业网络。因为他们的网络本身是为自己提供服务&#xff0c;不提供网络的接入服务。 企业网主要包括三块内容&#xff1a;园区网、广域网和数据中心。按照网络用途来分&#xff0c;也可以分为办公网和生产网。 以上术语都是根据自己公司的…

雷军10周年演讲全文:没有任何成功是不冒风险的

点击上方[全栈开发者社区]→右上角[...]→[设为星标⭐] 2020年8月11日19:30&#xff0c;小米十周年&#xff0c;雷军公开演讲如约而至。在近3小时的演讲中&#xff0c;雷军用20个故事回顾了小米过去的热血10年&#xff0c;也展望了新的10年&#xff1a; 创新之火将会照亮每个疯…