我需要用arraylist来编程这段代码

问题描述:

我所做的任何事似乎都把我的代码分解成不可用的垃圾。请注意,这也是一团糟......但至少它确实工作得很好。 这是一些细节: 它是一种粒子系统,但有图像。 koffer代表袋子,它必须是一种旋转袋子的爆炸,它的深度效果会稍微变大或变小,并且它们会随着时间消失,离开屏幕后应该被删除。 现在我得到了一半的袋子爆炸随机的方式,一半的袋子不这样做。它们都会消失,但在离开屏幕后不会被删除。目前还没有轻微的调整。但最重要的是我必须使用arraylist()并且不知道如何实现它。 这里是我的代码:我需要用arraylist来编程这段代码

主类BagEplode:

PImage coffre; 
float life = 255; 
int i = 0; 
Ball [] balls = new Ball [200]; 


void setup(){ 
    size (600,600,P3D); 
    noStroke(); 
    smooth(); 
    coffre = loadImage("coffre.png"); 
    for (i = 0; i < balls.length; i ++) 
    { 
    balls[i] = new Ball(); 
    } 
} 

void draw() 
{ 
    clear(); 
    life -= 2.5; 

    for (int i = 0; i < balls.length; i++) 
{ 
    if(i <= 4) 
    { 
    balls[i].kleur(); 
    image(coffre, balls[i].x, balls[i].y); 
    tint(255, life); 
    balls[i].update(); 
    } 
    //else 
    //{ 
    //} 

} 

} 

和我得到了类球:

class Ball 
{ 
public void kleur(){ 

} 

    float x = width/2; 
    float y = 601; 
    float vX = random(1,4); 
    float vY = random(-9,-5); 
    float sizeX = 0 ; 
    float sizeY = 0 ; 
    float draaiHoek = 0; 
    float angle = random(-3,3); 

public void update(){ 
    x += vX ; 
    y += vY ; 
    vY += 0.125; 
    sizeX = 64 ; 
    sizeY = 64 ; 
    draaiHoek -=angle; 
    imageMode(CENTER); 
    pushMatrix(); 
    translate(x,y); 
    rotate((radians(draaiHoek))); 
    image(coffre, 0, 0); 
    imageMode(CORNER); 
    popMatrix(); 

    //if (x > width || x < 0 || y > height || y < 0) 
    //{ 

    //} 

} 
} 

感谢名单对我的帮助提前。我希望我真的可以得到一些指示。

+0

发布的代码替换数组类型 - 的。请编辑你的问题。 –

从我的理解,你需要类型的ArrayList 球,实际上编译_might_帮助

import java.util.ArrayList; 

public class Ball { 

    PImage coffre; 
    float life = 255; 
    int i = 0; 


    //Ball [] balls = new Ball [200]; 
    ArrayList<Ball> balls= new ArrayList<Ball>(); 

    void setup(){ 
     size (600,600,P3D); 
     noStroke(); 
     smooth(); 
     coffre = loadImage("coffre.png"); 


/* for (i = 0; i < balls.length; i ++) 
     { 
     balls[i] = new Ball(); 
     } 
*/ 

     for(int i=0;i<balls.size();i++) 
     { 

      balls.add(new Ball()); 
     } 
    } 

    void draw() 
    { 
     clear(); 
     life -= 2.5; 

/* for (int i = 0; i < balls.length; i++) 
    { 
     if(i <= 4) 
     { 
     balls[i].kleur(); 
     image(coffre, balls[i].x, balls[i].y); 
     tint(255, life); 
     balls[i].update(); 
     } 
*/   
     for (int i = 0; i < balls.size(); i++) 
     { 
      if(i <= 4) 
      { 
      balls.get(i).kleur(); 
      image(coffre, balls.get(i).x, balls.get(i).y); 
      tint(255, life); 
      balls.get(i).update(); 
      } 
     //else 
     //{ 
     //} 
    } 
    } 
}