2014-01-25 16 views
-4

我所做的任何事似乎都把我的代碼分解成不可用的垃圾。請注意,這也是一團糟......但至少它確實工作得很好。 這是一些細節: 它是一種粒子系統,但有圖像。 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

發佈的代碼替換數組類型 - 的。請編輯你的問題。 –

回答

1

從我的理解,你需要類型的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 
     //{ 
     //} 
    } 
    } 
}