Quantcast
Channel: Library Questions - Processing 2.x and 3.x Forum
Viewing all articles
Browse latest Browse all 2896

How to make a line of objects created in classes?

$
0
0

In my 3D game, there are trees, lots of them. To make it easier, I want to make them in a row, with multiple rows. I have the code for the trees and placing them into the game but it takes up a lot of line the add them in. I was thinking of a for() loop for adding many but I'm not sure of how to do this. My trees code:

   Peastcam camera;
    TREE tree1;
    TREE tree2;
    TREE tree3;
    TREE tree4;
    TREE tree5;
    TREE tree6;
    TREE tree7;
    TREE tree8;
    TREE tree9;
    TREE tree10;
    TREE tree11;
    TREE tree12;
    TREE tree13;
    TREE tree14;
    TREE tree15;
    TREE tree16;
    TREE tree17;
    TREE tree18;
    TREE tree19;
    TREE tree20;
    void setup(){
     //fullScreen(P3D);
     size(683,384,P3D);
     frameRate(60);
     camera = new PeasyCam(this,width/2, height-100, width/2, 50);

    tree1 = new TREE(random(5,10),random(2,5),random(5,15),#1e932d,#8B4513,115,0,230);
    tree2 = new TREE(random(5,10),random(2,5),random(5,15),#1e932d,#8B4513,175,0,230);
    tree3 = new TREE(random(5,10),random(2,5),random(5,15),#1e932d,#8B4513,175,0,220);
    tree4 = new TREE(random(5,10),random(2,5),random(5,15),#1e932d,#8B4513,175,0,210);
    tree5 = new TREE(random(5,10),random(2,5),random(5,15),#1e932d,#8B4513,175,0,200);
    tree6 = new TREE(random(5,10),random(2,5),random(5,15),#1e932d,#8B4513,175,0,190);
    tree7 = new TREE(random(5,10),random(2,5),random(5,15),#1e932d,#8B4513,175,0,180);
    tree8 = new TREE(random(5,10),random(2,5),random(5,15),#1e932d,#8B4513,175,0,170);
    tree9 = new TREE(random(5,10),random(2,5),random(5,15),#1e932d,#8B4513,175,0,160);
    tree10 = new TREE(random(5,10),random(2,5),random(5,15),#1e932d,#8B4513,175,0,150);
    tree11 = new TREE(random(5,10),random(2,5),random(5,15),#1e932d,#8B4513,175,0,140);
    tree12 = new TREE(random(5,10),random(2,5),random(5,15),#1e932d,#8B4513,175,0,130);
    tree13 = new TREE(random(5,10),random(2,5),random(5,15),#1e932d,#8B4513,175,0,120);
    tree14 = new TREE(random(5,10),random(2,5),random(5,15),#1e932d,#8B4513,175,0,110);
    tree15 = new TREE(random(5,10),random(2,5),random(5,15),#1e932d,#8B4513,175,0,100);
    tree16 = new TREE(random(5,10),random(2,5),random(5,15),#1e932d,#8B4513,175,0,240);
    tree17 = new TREE(random(5,10),random(2,5),random(5,15),#1e932d,#8B4513,175,0,250);
    tree18 = new TREE(random(5,10),random(2,5),random(5,15),#1e932d,#8B4513,175,0,260);
    tree19 = new TREE(random(5,10),random(2,5),random(5,15),#1e932d,#8B4513,175,0,270);
    tree20 = new TREE(random(5,10),random(2,5),random(5,15),#1e932d,#8B4513,175,0,280);
    }
    void draw(){
     background(105);
     //directionalLight(255,255,255,0,1,0);

     translate(width/2,height+1,0);
     fill(0,255,0);                       //(height/2)/tan(PI/6)
     stroke(0);                        //translate(x,y,z);
     box(width,-1,width);            //box(width,height,depth)
     fill(255,0,0);

     tree1.display();
     tree2.display();
     tree3.display();
     tree4.display();
     tree5.display();
     tree6.display();
     tree7.display();
     tree8.display();
     tree9.display();
     tree10.display();
     tree11.display();
     tree12.display();
     tree13.display();
     tree14.display();
     tree15.display();
     tree16.display();
     tree17.display();
     tree18.display();
     tree19.display();
     tree20.display();
    }
    class TREE {
     float h;
     float tS;
     float lS;
     color lC;
     color tC;
     float treeX,treeY,treeZ;
       TREE(float trunkHeight, float trunkSize, float leafSize, color leafColor, color trunkColor, int treex, int treey, int treez){
         h = trunkHeight;
         tS = trunkSize;
         lS = leafSize;
         lC = leafColor;
         tC = trunkColor;
         treeX = treex;
         treeY = treey;
         treeZ = treez;
       }
       void display(){
       fill(tC);
       beginShape();
       vertex(treeX-(tS/2),treeY,treeZ-(tS/2));
       vertex(treeX-(tS/2),treeY,treeZ+(tS/2));
       vertex(treeX+(tS/2),treeY,treeZ+(tS/2));
       vertex(treeX+(tS/2),treeY,treeZ-(tS/2));
       endShape(CLOSE);
       beginShape();
       vertex(treeX-(tS/2),treeY-h,treeZ-(tS/2));
       vertex(treeX-(tS/2),treeY-h,treeZ+(tS/2));
       vertex(treeX+(tS/2),treeY-h,treeZ+(tS/2));
       vertex(treeX+(tS/2),treeY-h,treeZ-(tS/2));
       endShape(CLOSE);
       beginShape();
       vertex(treeX-(tS/2),treeY,treeZ-(tS/2));
       vertex(treeX-(tS/2),treeY,treeZ+(tS/2));
       vertex(treeX-(tS/2),treeY-h,treeZ+(tS/2));
       vertex(treeX-(tS/2),treeY-h,treeZ-(tS/2));
       endShape(CLOSE);
       beginShape();
       vertex(treeX+(tS/2),treeY,treeZ-(tS/2));
       vertex(treeX+(tS/2),treeY,treeZ+(tS/2));
       vertex(treeX+(tS/2),treeY-h,treeZ+(tS/2));
       vertex(treeX+(tS/2),treeY-h,treeZ-(tS/2));
       endShape(CLOSE);
       beginShape();
       vertex(treeX-(tS/2),treeY,treeZ+(tS/2));
       vertex(treeX+(tS/2),treeY,treeZ+(tS/2));
       vertex(treeX+(tS/2),treeY-h,treeZ+(tS/2));
       vertex(treeX-(tS/2),treeY-h,treeZ+(tS/2));
       endShape(CLOSE);
       beginShape();
       vertex(treeX-(tS/2),treeY,treeZ-(tS/2));
       vertex(treeX+(tS/2),treeY,treeZ-(tS/2));
       vertex(treeX+(tS/2),treeY-h,treeZ-(tS/2));
       vertex(treeX-(tS/2),treeY-h,treeZ-(tS/2));
       endShape(CLOSE);
       fill(lC);
       beginShape();
       vertex(treeX-(lS/2),treeY-h,treeZ-(lS/2));
       vertex(treeX-(lS/2),treeY-h,treeZ+(lS/2));
       vertex(treeX+(lS/2),treeY-h,treeZ+(lS/2));
       vertex(treeX+(lS/2),treeY-h,treeZ-(lS/2));
       endShape(CLOSE);
       beginShape();
       vertex(treeX-(lS/2),treeY-h-lS,treeZ-(lS/2));
       vertex(treeX-(lS/2),treeY-h-lS,treeZ+(lS/2));
       vertex(treeX+(lS/2),treeY-h-lS,treeZ+(lS/2));
       vertex(treeX+(lS/2),treeY-h-lS,treeZ-(lS/2));
       endShape(CLOSE);
       beginShape();
       vertex(treeX-(lS/2),treeY-h,treeZ-(lS/2));
       vertex(treeX-(lS/2),treeY-h,treeZ+(lS/2));
       vertex(treeX-(lS/2),treeY-h-lS,treeZ+(lS/2));
       vertex(treeX-(lS/2),treeY-h-lS,treeZ-(lS/2));
       endShape(CLOSE);
       beginShape();
       vertex(treeX+(lS/2),treeY-h,treeZ-(lS/2));
       vertex(treeX+(lS/2),treeY-h,treeZ+(lS/2));
       vertex(treeX+(lS/2),treeY-h-lS,treeZ+(lS/2));
       vertex(treeX+(lS/2),treeY-h-lS,treeZ-(lS/2));
       endShape(CLOSE);
       beginShape();
       vertex(treeX-(lS/2),treeY-h,treeZ+(lS/2));
       vertex(treeX+(lS/2),treeY-h,treeZ+(lS/2));
       vertex(treeX+(lS/2),treeY-h-lS,treeZ+(lS/2));
       vertex(treeX-(lS/2),treeY-h-lS,treeZ+(lS/2));
       endShape(CLOSE);
       beginShape();
       vertex(treeX-(lS/2),treeY-h,treeZ-(lS/2));
       vertex(treeX+(lS/2),treeY-h,treeZ-(lS/2));
       vertex(treeX+(lS/2),treeY-h-lS,treeZ-(lS/2));
       vertex(treeX-(lS/2),treeY-h-lS,treeZ-(lS/2));
       endShape(CLOSE);
       }
    }

As you can see, there is a lots of code just for 20 trees, but I need a lot more trees in the game (basically to act as the boarder). I have seem people use for loops to generate a row or grid of squares but I'm not sure of how to do it for custom created objects (trees). Please help.


Viewing all articles
Browse latest Browse all 2896

Trending Articles