I’m a beginner in processing and I’m making the flappy bird but, I’m stacked on the bar section.
//Final_project
int x = 0;
int y = 0;
int value = 0;
Bar[] bars;
void setup()
{
size(500, 600);
background(200);
bars = new Bar[2];
for (int i=0; i<bars.length; i++)
bars[i] = new Bar(i);
}
void draw(){
background(200);
y--;
for (int i=0; i<bars.length; i++){
bars[i].show();
bars[i].move();
}
fill(255);
ellipse(300,200-y,10,10);
}
void keyPressed() {
y++;
if (key == 'b') {
y++;
y++;
y++;
y++;
y++;
y++;
y++;
y++;
}
else {
}
}
//bar
public Bar(int q)
{
barStart = -300 + (int)random(4)*50;
barHeight = random(4, 9)*30;
x = barStart;
y = barHeight;
xSpeed = 5;
i = q;
if (i%2==0)
top = true;
else
top = false;
}
public void show()
{
fill(0, 25*i, 0);
if (top)
rect(x-90*i, 0, 80,barHeight);
else
rect(x-90*i, 600, 80,-barHeight);
}
public void move()
{
if (x-90*i>1000) {//if you go off-screen
x = -300 + (int)random(4)*50;//barStart
y = random(4, 9)*30;//barHeight
}
x = x + xSpeed;
}
}
I want these bars to come from the right side to the left side and also, i want to make these bars’ height come randomly.
Could someone fix it for me plz?
(under the//bar zone is all about the bar codes.)
Start by posting your code properly. Edit your post, select your code, then hit the button that will format it like code. The button looks like this: </>
Next, try copying the code in your post, pasting it in a new sketch, and running your own code. Does it run? Nope.
So your code has some problems. There is one too many }'s. The Bar variable type is not defined. Several variables are never defined.
Are you trying to make a “Bar” be a new type of object? It seems like it, since you’re trying to have an array of two of them. But you never define a Bar class anywhere.
Try addressing these problems yourself. Define a Bar class. Maybe it can make use of the extra }? Does it have a constructor? What variables need to be defined in the class? That is, what variables does a Bar need?
… Once you have a sketch that runs without errors, post the code again.
These r in two different tabs. one of them is in the tab named “Final_project”, and the another one is in the tab named “bar” which is from under the “//bar”
And when i run it on my processing, it runs.
float x = 0;
float y = 0;
int value = 0;
Bar[] bars;
void setup() {
size(500, 600);
background(200);
bars = new Bar[2];
for (int i=0; i<bars.length; i++) {
bars[i] = new Bar(i);
}
}
void draw() {
background(200);
y--;
for (int i=0; i<bars.length; i++) {
bars[i].show();
bars[i].move();
}
fill(255);
ellipse(300, 200, 10, 10);
}
void keyPressed() {
if (key == 'b') {
y++;
}
}
//bar
class Bar {
float barStart;
float barHeight;
float xSpeed;
boolean top;
float iq;
Bar(int q) {
barStart = -300 + (int)random(4)*50;
barHeight = random(4, 9)*30;
x = barStart;
y = barHeight;
xSpeed = 5;
if (q%2==0) {
top = true;
} else {
top = false;
}
iq = q;
}
void show() {
fill(0, 25*iq, 0);
if (top) {
rect(x-90*iq, 0, 80, barHeight);
} else {
rect(x-90*iq, 600, 80, -barHeight);
}
}
void move() {
if (x-90*iq>1000) {
x = -300 + (int)random(4)*50;
y = random(4, 9)*30;
}
x = x + xSpeed;
}
} // End class Bar
Again, this all goes in one tab. Notice the changes; the most interesting change is that the Bar() function is now the constructor for a real class for Bar objects.