class Train { int xpos; int ypos; int trainSpeed; Train(int xp, int yp, int iSpeed) { xpos = xp; ypos = yp; trainSpeed = iSpeed; } void render () { rect(65 + xpos, 145 + ypos, 50, 10); rect(70 + xpos, 155 + ypos, 40, 30); rect(135 + xpos, 165 + ypos, 15, 20); rect(60 + xpos, 185 + ypos, 100, 55); ellipse(80 + xpos, 240 + ypos, 30, 30); ellipse(130 + xpos, 240 + ypos, 30, 30); line(75 + xpos, 235 + ypos, 130 + xpos, 235 + ypos); line(80 + xpos, 245 + ypos, 135 + xpos, 245 + ypos); } void drive () { xpos = xpos + trainSpeed; if (xpos > 350) { xpos = -175; } } } Train myTrain1; Train myTrain2; int xpos = -175; int railcount = 0; void setup() { size(400, 300); myTrain1 = new Train(-175, 1, int(random(1, 9))); myTrain2 = new Train(-175, -140, int(random(1, 9))); line(0, 255, 400, 255); } void draw() { framerate(30); background(255, 255, 255); myTrain1.render(); myTrain1.drive(); myTrain2.render(); myTrain2.drive(); }