views:

81

answers:

1

I'm having trouble with some objects in processing. the code should have two objects displayed and moving. but i only see one object displayed and moving. maybe there's something i'm missing. check out the code.

Rule myRule;
Rule myRule1;

void setup() {
  size(200,200);
  smooth();

  //Initialize rule objects
  myRule = new Rule(0,100,1);
  myRule1 = new Rule(0,140,20);
}



void draw() {
  background(255);
  //int x1 = 0;
  //int y1 = 0;
  //Operate Rule object
  myRule.move();
  myRule.display();
  myRule1.move();
  myRule1.display();
}


class Rule {

  float x;
  float y;
  float spacing;
  float speed;

  Rule(float x1, float y1, float s1) {
    x = x1;
    y = y1;
    spacing = 10;
    speed = s1;
  }

  void move() {
    x = x + speed;
    if((x > width) || (x < 0)) {
      speed = speed * -1;
    }
  }

  //Display lines at x location
  void display() {
    stroke(0);
    fill(175);
    line(x, height/2, width/2, height/2);
  }
}
A: 

It's a typo in Rule.display(). You probably meant something like

line(x, y, width/2, height/2);

DerMike
It struck me when I colored both lines :-)
DerMike
//Display lines at x location void display() { stroke(0); fill(175); line(x, y, width/2, y);i think there was some sort of sort issue with what took precedence. i believe that the height is more specific than just y which allows values to be passed...it worked
Obinna Izeogu