processing-python-泡泡龙(终极真实版)
挂一个无耻搬运工:码农教程。
真的打心底里瞧不起为了蹭热度全网照抄代码的某些人。
processing-python-泡泡龙
def setup():size(600,600)global x, y, vx, vy, theta, vtheta, bx, by, curBall, aliveBallglobal COLOR, c, bcglobal R, LR = 20L = 3theta = -PI/2vtheta = 0.01#球需要有速度,位置,颜色三个属性#对应x,y坐标、x,y速度、c#上方球由于固定,可以只有位置和颜色属性#对应bx,by和bcx, y = width/2, height#初始化球在中下位置,速度为0,颜色随机给一个vx, vy = 0, 0bx, by = [], []curBall = []aliveBall = []COLOR = [color(227,41,54),color(41,188,227),color(41,227,48),color(250,239,13)]#COLOR颜色列表,c和bc表示列表中的第几个颜色,而不是直接表示颜色c = int(random(len(COLOR)))bc = []for i in range(int(width/R/2)):for j in range(-int(height/R/2),int(height/R/2/5)):bx.append(i*2*R)by.append( j*2*R)curBall.append(len(curBall))#显示的球aliveBall.append(len(aliveBall))#活着的球bc.append(int(random(len(COLOR))))#死了的球def draw():global x, y, vx, vy, theta, vtheta, bx, by, curBall, aliveBallglobal COLOR, R, L, c, bcbackground(255)def findDead(i):d = [i]#打中了第i号球,d[]记录接下来找到的应该死掉的球def tmp(i):for j in curBall:#找和i相邻且同色的球,#首先排除掉已经找到的球,然后需要颜色编号相同,其次需要距离小于两球半径之和if j not in d and bc[j]==bc[i] and dist(bx[i],by[i],bx[j],by[j])<2.1*R:d.append(j)#确认过眼神,找到对的球j,用小本本记下来#接下来再找刚刚找到的球的下一个应该死掉的球tmp(j)tmp(i)#这样一直找下一个该死的泡泡龙#就得到了所有该死的球 (逃return dnoFill()ellipse(width/2,height,4*R,4*R)strokeWeight(2*R)line(width/2,height,width/2+20*L*cos(theta),height+20*L*sin(theta))strokeWeight(1)#画会动的球fill(COLOR[c])ellipse(x,y,2*R,2*R)for i in curBall:#画每个还没死的球fill(COLOR[bc[i]])ellipse(bx[i], by[i], 2*R, 2*R)#检查有没有被撞到if dist(bx[i], by[i], x, y)<2*R:if bc[i] == c:#某个同色球被撞到#找它旁边该死的球,以及旁边该死的球的旁边的该死的球,以及*******tmp = findDead(i)#找到了这一次所有该死的球#把他们从生死簿上重新做标记#地狱+1#人间-1for t in tmp:aliveBall.remove(t)#不管有没有撞到该死的球,都应该飞回原点 (逃else:nearx = [bx[i]-2*R,bx[i],bx[i],bx[i]+2*R]#附近的空位neary = [by[i],by[i]+2*R,by[i]-2*R,by[i]]for n in range(4):if dist(nearx[n],neary[n],x,y)<2*R:bx.append(nearx[n])#接近就粘贴by.append(neary[n])#实际上是添加新球bc.append(c)aliveBall.append(len(bx)-1)breakx, y = width/2, heightvx, vy = 0, 0#顺便换个马甲再来c = int(random(len(COLOR)))curBall = aliveBall[:]if frameCount%200==0:for i in curBall:by[i] += 1if keyPressed:if keyCode == LEFT:theta -= vthetaelif keyCode == RIGHT:theta += vthetaif key == 's' or key == 'S':vx = L*cos(theta)vy = L*sin(theta)#更新一下,现在显示的球全是没死的球x += vxy += vy#左右碰壁就反弹if x>width-R or x<R:vx = -vx# 上面碰壁也反弹if y<R:vy = -vy#下面碰壁就还原if y>height+R:x, y = width/2, heightvx, vy = 0, 0#换个马甲c = int(random(len(COLOR)))def mousePressed():global vx, vy, theta, Lvx = L*cos(theta)vy = L*sin(theta)def mouseMoved():global thetapx = mouseX-width/2.0if px==0:px=0.00001py = mouseY-heighttheta = -PI+atan(py/px) if px<0 else atan(py/px)
最后还是要为公众号拉点流量:
processing-python-泡泡龙(终极真实版)相关推荐
- python核心编程第二版pdf_Python Book电子书pdf版合集 Python核心高级编程第二版
1小时学会Python.doc 51CTO下载-[Python系列].BeginningPythonFromNovicetoProfessionalSecondEdition.pdf 8.Python ...
- 【Python 自然语言处理 第二版】读书笔记1:语言处理与Python
文章目录 前言 语言处理与Python 一.语言计算:文本和单词 1.NLTK入门 (1)安装(nltk.nltk.book) (2)搜索文本 (3)词汇计数 2.列表与字符串 (1)列表操作 (2) ...
- python软件下载安装百度网盘-【python编程+第四版】百度云下载 - 云盘精灵
|- 用Python3带你从小白入门机器学习实战教程手册.pdf - 7.30 MB |- 人工智能Python实战代码 Python code for Artificial Intelligence ...
- FL Studio for 21 Windows版 Producer Edition v21.0.3 Build 3517官方中文免费终极解锁版下载
FL Studio for 21 Windows版 Producer Edition v21.0.3 Build 3517官方中文免费终极解锁版下载 是一款强大的数字音频工作站(DAW)软件,为您提供 ...
- 《像计算机科学家一样思考Python(第2版)》——2.6 字符串操作
本节书摘来自异步社区<像计算机科学家一样思考Python(第2版)>一书中的第2章,第2.6节,作者[美] Allen B. Downey,赵普明 译,更多章节内容可以访问云栖社区&quo ...
- 视频: 猫和老鼠真实版
视频: 猫和老鼠真实版 http://www.tudou.com/programs/view/o0Dk9RLHWPU/ 转载于:https://blog.51cto.com/laowafang/112 ...
- 目前比较流行的Python科学计算发行版
经常有身边的学友问到用什么Python发行版比较好? 其实目前比较流行的Python科学计算发行版,主要有这么几个: Python(x,y) GUI基于PyQt,曾经是功能最全也是最强大的,而且是Wi ...
- 用上这个Python的Docker正式版镜像,你也能成为容器高玩
萧箫 发自 凹非寺 量子位 报道 | 公众号 QbitAI 加载完Python的Docker镜像后,顺手又装了个Python? 这样的「误会」,在你看完这篇对Python的Docker"正式 ...
- 拒绝从入门到放弃_《Python 核心编程 (第二版)》必读目录
目录 目录 关于这本书 必看知识点 最后 关于这本书 <Python 核心编程 (第二版)>是一本 Python 编程的入门书,分为 Python 核心(其实并不核心,应该叫基础) 和 高 ...
最新文章
- LinkedIn领英发布《2016中国人才趋势报告》
- boost::gil模块数字扩展中的 resample_pixels() 示例
- Log4j比较全面的配置
- mac 下 使用 java运行 class 文件 总是提示 “错误: 找不到或无法加载主类”的解决方法...
- MySql中的时间类型datetime,timestamp,date,year比较
- 谁敢花35万再加盟瑞幸?
- 三点坐标确定圆心坐标
- eclipse换炫酷主题
- win7安装中文语言包
- 通俗易懂的图解机器学习之机器学习概论
- oracle补丁安装
- Druid SQL和Security在美团点评的实践
- 假如用VIVO手机拍照,这几个功能一定要打开,效果媲美单反
- JS点击复制按钮复制相关内容
- ferguson博弈_组合博弈游戏
- 【小程序】使用wxParse解析html
- 数据结构-第一讲 基本概念-学习笔记(MOOC 浙江大学 陈越 何钦铭)
- Scrapy反爬与反反爬
- 你有“隐私泄露担忧”吗?适合普通用户的6个方法来了
- 临床研究统计分析的要求和报告规范