level 1
缺心眼子2👀
楼主
// set all the array variable
int particleCount = 100;
int simScreenBG = 0;
float[] particlePosX;
float[] particlePosY;
float[] particleSize;
color[] particleColor;
float[] particleVX;
float[] particleVY;
boolean move =true;
boolean[] alive = new boolean [particleCount];
void init() { //set the variable in fuction init
for (int i = 0; i<particleCount; i++) {
particlePosX[i] = random (width);
particlePosY[i] = random (height);
particleColor[i] = color(random(0, 255), random(0, 255), random(0, 255));
particleSize[i] = random(10, 80);
particleVX[i] = random(-2, 2);
particleVY[i] = random(-2, 2);
alive[i] = true;
}
}
void display(int idx) { // set the variable to show ellipse
fill(particleColor[idx]);
ellipse(particlePosX[idx], particlePosY[idx], particleSize[idx], particleSize[idx]);
}
void move(int idx) { //set the variable to let the ellipse move
if (move == true) {
particlePosX[idx] += particleVX[idx];
particlePosY[idx] += particleVY[idx];
}
}
void setup() { // set the size and background
particlePosX= new float [particleCount];
particlePosY= new float [particleCount];
particleSize= new float [particleCount];
particleColor= new color [particleCount];
particleVX= new float [particleCount];
particleVY= new float [particleCount];
size(600, 400);
background(simScreenBG);
init();
initClever();
}
void draw() { //let the program running
background(simScreenBG);
for (int i = 0; i<particleCount; i++) {
display(i);
move(i);
rebound(i);
for (int idx2 =0; idx2<particleCount; idx2++) {
if (colliding(i, idx2) == true) {
alive[i] = false;
alive[idx2] = false;
}
}
}
}
void rebound(int idx) {// let the ball reboud
if (particlePosX[idx] < particleSize[idx]/2) {
particleVX[idx]= - particleVX[idx];
}
if (particlePosX[idx] > width-particleSize[idx]/2) {
particleVX[idx]= - particleVX[idx];
}
if (particlePosY[idx] < particleSize[idx]/2) {
particleVY[idx]= - particleVY[idx];
}
if (particlePosY[idx] > height-particleSize[idx]/2) {
particleVY[idx]= - particleVY[idx];
}
}
void keyPressed() {//when pressed the space, the ball not running
if (key == ' ') {
move = !move;
}
}
boolean colliding(int idx1, int idx2) {
if (dist(particlePosX[idx1], particlePosY[idx1], particlePosX[idx2], particlePosY[idx2])<=particleSize[idx1]/2+particleSize[idx2]/2) {
return true;
}
{
return false;
}
}
void initClever() {
}
}

2016年12月04日 12点12分
1
int particleCount = 100;
int simScreenBG = 0;
float[] particlePosX;
float[] particlePosY;
float[] particleSize;
color[] particleColor;
float[] particleVX;
float[] particleVY;
boolean move =true;
boolean[] alive = new boolean [particleCount];
void init() { //set the variable in fuction init
for (int i = 0; i<particleCount; i++) {
particlePosX[i] = random (width);
particlePosY[i] = random (height);
particleColor[i] = color(random(0, 255), random(0, 255), random(0, 255));
particleSize[i] = random(10, 80);
particleVX[i] = random(-2, 2);
particleVY[i] = random(-2, 2);
alive[i] = true;
}
}
void display(int idx) { // set the variable to show ellipse
fill(particleColor[idx]);
ellipse(particlePosX[idx], particlePosY[idx], particleSize[idx], particleSize[idx]);
}
void move(int idx) { //set the variable to let the ellipse move
if (move == true) {
particlePosX[idx] += particleVX[idx];
particlePosY[idx] += particleVY[idx];
}
}
void setup() { // set the size and background
particlePosX= new float [particleCount];
particlePosY= new float [particleCount];
particleSize= new float [particleCount];
particleColor= new color [particleCount];
particleVX= new float [particleCount];
particleVY= new float [particleCount];
size(600, 400);
background(simScreenBG);
init();
initClever();
}
void draw() { //let the program running
background(simScreenBG);
for (int i = 0; i<particleCount; i++) {
display(i);
move(i);
rebound(i);
for (int idx2 =0; idx2<particleCount; idx2++) {
if (colliding(i, idx2) == true) {
alive[i] = false;
alive[idx2] = false;
}
}
}
}
void rebound(int idx) {// let the ball reboud
if (particlePosX[idx] < particleSize[idx]/2) {
particleVX[idx]= - particleVX[idx];
}
if (particlePosX[idx] > width-particleSize[idx]/2) {
particleVX[idx]= - particleVX[idx];
}
if (particlePosY[idx] < particleSize[idx]/2) {
particleVY[idx]= - particleVY[idx];
}
if (particlePosY[idx] > height-particleSize[idx]/2) {
particleVY[idx]= - particleVY[idx];
}
}
void keyPressed() {//when pressed the space, the ball not running
if (key == ' ') {
move = !move;
}
}
boolean colliding(int idx1, int idx2) {
if (dist(particlePosX[idx1], particlePosY[idx1], particlePosX[idx2], particlePosY[idx2])<=particleSize[idx1]/2+particleSize[idx2]/2) {
return true;
}
{
return false;
}
}
void initClever() {
}
}

