2012-09-05 37 views
1
typedef struct 
{ 
    float lifetime;      // total lifetime of the particle 
    float decay;       // decay speed of the particle 
    float r,g,b;       // color values of the particle 
    float xpos,ypos,zpos;     // position of the particle 
    float xspeed,yspeed,zspeed;   // speed of the particle 
    boolean active;      // is particle active or not? 
} PARTICLE; 

    void CreateParticle(int i) 
    { 
     particle[i].lifetime= (float)random(500000)/500000.0; 
     particle[i].decay=0.001; 
     particle[i].r = 0.7; 
     particle[i].g = 0.7; 
     particle[i].b = 1.0; 
     particle[i].xpos= 0.0; 
     particle[i].ypos= 0.0; 
     particle[i].zpos= 0.0; 
     particle[i].xspeed = 0.0005-(float)random(100)/100000.0; 
     particle[i].yspeed = 0.01-(float)random(100)/100000.0; 
     particle[i].zspeed = 0.0005-(float)random(100)/100000.0; 
     particle[i].active = true; 
    } 

我會如何去在Java中做這樣的事情?我認爲這看起來像是一個很好的方式,我希望Java中有類似的解決方案。我會如何去做這樣的事情在Java中?

+2

喜歡的東西是什麼?你只是想創建一個具有屬性的類,並且有辦法在數組中創建該類的一個實例?看起來像任何Java教程就足夠了。 –

回答

1

您可以創建一個Particle類:

import java.util.Random; 

public class Particle { 
    // Data fields: 
    private double lifetime; 
    private double decay; 
    private double r, g, b; 
    private double xpos, ypos, zpos; 
    private double xspeed, yspeed, zspeed; 
    private boolean active; 

    // Constructor 
    public Particle() { 
     r = 0.7; g = 0.7; b = 1.0; 
     decay = 0.001; 
     Random rand = new Random(); 
     lifetime = rand.nextInt(500000)/500000.0; 
     xspeed = 0.0005 - rand.nextInt(100)/100000.0; 
     yspeed = 0.01 - rand.nextInt(100)/100000.0; 
     zspeed = 0.0005 - rand.nextInt(100)/100000.0; 
     active = true; 
     // all others are 0 by default 
    } 
} 

您也可以輕鬆地方法來回報您的數據字段的值,例如:

public double lifetime() { 
    return lifetime; 
} 
+0

你也可以創建一個完全獨立的類。我也建議通過一個教程,你將發現成員類和獨立的區別..和其他的東西,這將有助於你。 – Kickaha

相關問題