processing-python-泡泡龙
挂一个无耻搬运工:码农教程。
真的打心底里瞧不起为了蹭热度全网照抄代码的某些人。
再次此声明:代码不是python语言,求某些搬运工不要到处搬运害人。
def setup():
size(600,600)
global x, y, vx, vy, bx, by, curBall, aliveBall
global COLOR, c, bc
#球需要有速度,位置,颜色三个属性
#对应x,y坐标、x,y速度、c #上方球由于固定,可以只有位置和颜色属性
#对应bx,by和bc x, y = width/2, height-15
#初始化球在中下位置,速度为0,颜色随机给一个
vx, vy = 0, 0
bx, 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(20):
for j in range(10):
bx.append(i*30)
by.append( j*30)
curBall.append(len(curBall))#显示的球
aliveBall.append(len(aliveBall))#活着的球
bc.append(int(random(len(COLOR))))#死了的球 def draw():
global x, y, vx, vy, bx, by, curBall, aliveBall
global COLOR, c, bc background(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])<31:
d.append(j)#确认过眼神,找到对的球j,用小本本记下来
#接下来再找刚刚找到的球的下一个应该死掉的球
tmp(j)
tmp(i)
#这样一直找下一个该死的泡泡龙
#就得到了所有该死的球 (逃
return d #画会动的球
fill(COLOR[c])
ellipse(x,y,30,30) for i in curBall:
#画每个还没死的球
fill(COLOR[bc[i]])
ellipse(bx[i], by[i], 30, 30)
#检查有没有被撞到
if dist(bx[i], by[i], x, y)<30:
if bc[i] == c:
#某个同色球被撞到
#找它旁边该死的球,以及旁边该死的球的旁边的该死的球,以及*******
tmp = findDead(i)
#找到了这一次所有该死的球
#把他们从生死簿上重新做标记
#地狱+1
#人间-1
for t in tmp:
aliveBall.remove(t)
#不管有没有撞到该死的球,都应该飞回原点 (逃
x, y = width/2, height-15
vx, vy = 0, 0
#顺便换个马甲再来
c = int(random(len(COLOR)))
curBall = aliveBall[:]
#更新一下,现在显示的球全是没死的球
x += vx
y += vy
#左右碰壁就反弹
if x>width-15 or x<15:
vx = -vx
# 上面碰壁也反弹
if y<15:
vy = -vy
#下面碰壁就还原
if y>height-15:
x, y = width/2, height-15
vx, vy = 0, 0
#换个马甲
c = int(random(len(COLOR))) def mousePressed():
global vx, vy
#按下鼠标就发射,给个速度就可
vx = (mouseX-width/2)/100.0
vy = (mouseY-height+15)/100.0
processing-python-泡泡龙的更多相关文章
- 【320】Python 2.x 与 3.x 的区别
通过代码移植的报错进行梳理! 1. print 函数的区别 Python 2.x 中可以加空格或者括号,但是 Python 3.x 只能是括号的 # Python 2.x >>> p ...
- [转]如何像Python高手(Pythonista)一样编程
本文转自:http://xianglong.me/article/how-to-code-like-a-pythonista-idiomatic-python 最近在网上看到一篇介绍Pythonic编 ...
- [译] 如何像 Python 高手一样编程?
转自:http://www.liuhaihua.cn/archives/23475.html Harries 发布于 7天前 分类:编程技术 阅读(15) 评论(0) 最近在网上看到一篇介绍Pytho ...
- .pyc & Python
.pyc & Python Python bytecode / 字节码 Python compiles the .py files and saves it as .pyc files , s ...
- [转]Haroopad Markdown 编辑器代码语法高亮支持
代码语法高亮 书写格式为: ` ` ` language_key if (condition){ return true } ` ` ` 在 ` ` ` (三个反引号)之间的是代码,其中languag ...
- Embedding Lua in C: Using Lua from inside C.
Requirments: 1: The Lua Sources. 2: A C compiler - cc/gcc/g++ for Unix, and Visual C++ for Wi ...
- haroopad 语法高亮问题
<!DOCTYPE html> Untitled.html div.oembedall-githubrepos{border:1px solid #DDD;border-radius:4p ...
- pandas 之 字符串处理
import numpy as np import pandas as pd Python has long been a popular raw data manipulation language ...
- 简书 markdown 代码高亮标记
SyntaxHighlight language language_key 1C 1c ActionScript actionscript Apache apache AppleScript a pp ...
- 【转】我们为什么要使用 Markdown
目录 从前码字时我们面临着什么困境 标记语言显神威 到底什么是 Markdown 所以为什么我们要使用 Markdown Markdown 简明语法 段落和换行 标题 区块引用 列表 强调 代码标识和 ...
随机推荐
- Intellij IDEA搭建JSP+Tomcat开发环境
1.新建项目 然后填入项目名称和选择项目路径,填完点击完成. 2.添加WEB框架 别问我为什么不一开始就直接新建WEB框架,因为我也是看的别人的教程0.0 不过还遇到了一些新问题,后面会讲到 3.配置 ...
- pat 1077 Kuchiguse(20 分) (字典树)
1077 Kuchiguse(20 分) The Japanese language is notorious for its sentence ending particles. Personal ...
- Flex修改皮肤样式
Flex修改皮肤大致有三种方式: (以button为例) 第一种:修改外观 1.flex项目中新建mxml外观.
- 驰骋工作流系统-Java共工作流引擎配置定时任务
关键词:工作流定时任务 流程引擎定时任务设置 工作流系统定时任务配置 开源工作流引擎 开源工作流系统 一.定时任务的作用 发送邮件,发送短信. 处理节点自动执行的任务.比如:一个节点的待办工作是 ...
- 23种GoF设计模式的分类
GoF设计模式一共有23个.一般可以按目的和作用范围来进行划分,具体划分方法如下: 第一,这些模式按目的(即完成什么样任务)来划分为创建型.结构型和行为型这三种模式: 创建型:用来创建对象.单例.原型 ...
- linux 内核版本和发行版本区别
内核版本:我的理解是,内核是系统的心脏,是linux中最基层的代码.版本号如 Linux version 3.10.0-514.el7.x86_64 查看内核版本可使用.uname -a 或者cat ...
- JAVA合并多个word文档根据文章标题生成目录
此产品版本是免费版的,我也是在用免费,除了只能单次识别25张一下的word和生成pdf有限制,其他的功能都和正式版差不多. 如果你几十个文档,每个文档几页,输出出来超过25页,那没关系,依然可以使用. ...
- SpringMVC 前端传递list到后台
---恢复内容开始--- 1.前端获取传入后台的list 2.ajax写法: $.ajax({ type: 'post', url: url, async:false, dataType:" ...
- jenkins + maven + nexus + [ svn 或 GitLab 或 GitHub ]
目录 介绍 DevOps平台四大模块 针对DevOps开源项目 Jenkins 介绍 Maven 介绍 maven的核心概念介绍 SVN介绍 Nexus介绍 Maven私服的 个特性: 流程图 环境搭 ...
- CCNA 之 十二 Frame Relay 帧中继
Fram Relay 帧中继 帧中继简介 VC.LMI.DLCI的概念 帧中继映射 Inverse-ARP的操作 帧中继配置 帧中继简介 分组交换广域网接入方式的一个代表,分组交换是以分组的形式在广域 ...