Problems with the score in a game
in
Programming Questions
•
11 months ago
Hey,
I have a problem with my game.
First I had a problem, that if i caught one ball, that all balls disappears on the field. I fixed that by using a method. For example if I caught one ball, that ball will go to another ball. And the problem that I have now is that the points also goes to the other ball. And the points on that ball will be much higher than 5 points.
I hope you understand something:)
One note: I know that the last ball gives you the points all the time
My Code:
int windowBreedte = 500;
int windowHoogte = 500;
int snelheidKarel = 10; // Speed Triangle
int score = 0;
float middenpuntDriehoekX; //center Triangle X
float middenpuntDriehoekY; //center Triangle Y
int index = 10; // How much balls on field
int [][] balletjes = new int [index][3]; // Array for making the balls
int balGrootteX = windowBreedte / 30; // diameter ball X
int balGrootteY = windowHoogte / 30; // diameter ball Y
boolean ballen = true;
int triangleX = int (random(windowBreedte / 20 + (windowBreedte / 20), (windowBreedte - (windowBreedte / 20)) - (windowBreedte / 20))); // random position triangle X
int triangleY = int (random(windowHoogte / 20 + (windowHoogte / 20), (windowHoogte - (windowHoogte / 20)) - (windowHoogte / 20))); // randomPosition triangle Y
int minimumPunten = 1; // minimum points
int maximumPunten = 5; // maximum points
void setup() {
size(windowBreedte, windowHoogte);
balletjes();
smooth();
}
void draw() {
background(0);
tekenDriehoeken(); // Draw Triangles
tekenBalletjes(); // Draw Balls
fill(255);
text("Score: " + score, width / 2, height / 2);
}
void balletjes() {
for (int i = 0; i < index; i++) {
balletjes[i][0] = int(random(width / 20 + (balGrootteX / 2), width - width / 20 - (balGrootteX / 2)));
balletjes[i][1] = int(random(height / 20 + (balGrootteY / 2), height - height / 20 - (balGrootteY / 2)));
int punten = round (random(minimumPunten, maximumPunten)); // Random Points
balletjes[i][2] = punten;
}
}
void tekenBalletjes() {
if (ballen == true) {
for (int i = 0; i < index; i++) {
fill(255);
ellipse(balletjes[i][0], balletjes[i][1], balGrootteX, balGrootteY);
}
}
if (ballen == false) {
}
for (int i = 0; i < index; i++) {
for (int j = 1; j < index; j++) {
if (middenpuntDriehoekX > (balletjes[i][0]) - balGrootteX && middenpuntDriehoekX < (balletjes[i][0]) + balGrootteX && middenpuntDriehoekY > (balletjes[i][1]) - balGrootteY && middenpuntDriehoekY < (balletjes[i][1]) + balGrootteY) {
balletjes[i][0] = balletjes[j][0];
balletjes[i][1] = balletjes[j][1];
score += balletjes[i][2];
println(balletjes[i][2]);
}
}
}
for (int y = 0; y < index; y++) {
if (balletjes[y][0] == balletjes[y][0] && balletjes[y][1] == balletjes[y][1] &&
middenpuntDriehoekX > (balletjes[y][0]) - balGrootteX && middenpuntDriehoekX < (balletjes[y][0]) + balGrootteX && middenpuntDriehoekY > (balletjes[y][1]) - balGrootteY &&
middenpuntDriehoekY < (balletjes[y][1]) + balGrootteY) {
ballen = false;
}
}
}
void tekenDriehoeken() {
if (keyCode == LEFT) {
triangleLeft();
}
else if (keyCode == RIGHT) {
triangleRight();
}
else if (keyCode == UP) {
triangleUp();
}
else if (keyCode == DOWN) {
triangleDown();
}
}
void triangleRight() {
fill(#FF00DE);
triangle(triangleX, (triangleY) - (height / 20),
triangleX, (triangleY),
(triangleX) + (width / 20), (triangleY) - (height / 40));
middenpuntDriehoekX = ((triangleX) + (triangleX) + ((triangleX) + (width / 20))) / 3;
middenpuntDriehoekY = (((triangleY) - (height / 20)) + (triangleY) + ((triangleY) - (height / 40))) / 3;
}
void triangleLeft() {
fill(#FF00DE);
triangle((triangleX) + (width / 20), (triangleY) - (height / 20),
(triangleX) + (width / 20), (triangleY),
(triangleX), (triangleY) - (height / 40));
middenpuntDriehoekX = (((triangleX) + (width / 20)) + ((triangleX) + (width / 20)) + (triangleX)) / 3;
middenpuntDriehoekY = (((triangleY) - (height / 20)) + (triangleY) + ((triangleY) - (height / 40))) / 3;
}
void triangleUp() {
fill(#FF00DE);
triangle(triangleX, triangleY,
(triangleX) + (width / 20), (triangleY),
(triangleX) + (width / 40), (triangleY) - (height / 20));
middenpuntDriehoekX = ((triangleX) + ((triangleX) + (width / 20)) + ((triangleX) + (width / 40))) / 3;
middenpuntDriehoekY = ((triangleY) + (triangleY) + ((triangleY) - (height / 20))) / 3;
}
void triangleDown() {
fill(#FF00DE);
triangle(triangleX, (triangleY) - (height / 20),
(triangleX) + (width / 20), ((triangleY) - (height / 20)),
(triangleX) + (width / 40), (triangleY));
middenpuntDriehoekX = ((triangleX) + ((triangleX) + (width / 20)) + ((triangleX) + (width / 40))) / 3;
middenpuntDriehoekY = (((triangleY) - (height / 20)) + ((triangleY) - (height / 20)) + (triangleY)) / 3;
}
void keyPressed() {
if (key == CODED) {
if (keyCode == UP) {
triangleY = triangleY - snelheidKarel;
}
else if (keyCode == DOWN) {
triangleY = triangleY + snelheidKarel;
}
else if (keyCode == LEFT) {
triangleX = triangleX - snelheidKarel;
}
else if (keyCode == RIGHT) {
triangleX = triangleX + snelheidKarel;
}
}
}
1