# Verschiedenfarbige Steinehab



## Lucaaa (10. Jan 2018)

Hallo!
Ich habe ein BrickBreaker Spiel programmiert (Naja jedenfalls bin ich dabei). Nun möchte ich das alle Steine eine andere Farbe haben. Hier erst einmal dass was ich bis her in meiner MapGenerator Klasse habe: 

```
package com.ludevstudio.brickbreaker;
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Shape;
import java.awt.Stroke;
import java.util.Random;
public class MapGenerator {
 
 public int map[][];
 public int brickWidth;
 public int brickHeight;
 int color;
 
 public MapGenerator(int row, int col) {
  map = new int[row][col];
   
  for(int i = 0; i<map.length; i++) {
   for(int j = 0; j<map[0].length; j++) {
    map[i][j] = 1;
   }
   
    Random random = new Random();
    color = random.nextInt(9);
   }
   
   brickWidth = 700/col;
   brickHeight = 300/row;
   
  }
 
 public void setBrickValue(int value, int i, int j) {
  map[i][j] = value;
 }
 public void draw(Graphics2D g) {
  for(int i = 0; i<map.length; i++) {
   for(int j = 0; j<map[0].length; j++) {
    if(map[i][j]>0) {
      
      
      
       
       if(color==0) {
       g.setColor(Color.WHITE);
      } else if(color==1) {
       g.setColor(Color.YELLOW);
      }  else if(color==2) {
       g.setColor(Color.ORANGE);
      }  else if(color==3) {
       g.setColor(Color.RED);
      }  else if(color==4) {
       g.setColor(Color.BLUE);
      }  else if(color==5) {
       g.setColor(Color.GREEN);
      }  else if(color==6) {
       g.setColor(Color.GRAY);
      }  else if(color==7) {
       g.setColor(Color.PINK);
      }  else if(color==8) {
       g.setColor(Color.MAGENTA);
      } else if(color==9) {
       g.setColor(Color.cyan);
      } 
       g.fillRect(j*brickWidth+50, i*brickHeight+60, brickWidth, brickHeight);
       
     g.setStroke(new BasicStroke(3));
      g.setColor(Color.black);
     g.drawRect(j*brickWidth+50, i*brickHeight+60, brickWidth, brickHeight);
    
   
   
     }
   }
 }
 
 
 
}
}
```
In meiner Klasse wird beim Spielstart eine Zufällige Farbe ausgewählt mit der alle Steine eingefärbt werden. Da diese Klasse sehr oft im Spiel aufgerufen wird,  würde sich wenn ich den Random unten in die Methode schreibe, die Farbe jedes Steins andauerd ändern. (ausprobiert). Das will ich aber nicht. Wie gesagt: Jeder Stein soll eine zufällige Farbe erhalten, die sich während des Spiels NICHT ändern soll.
Ich hoffe ich habe es nicht zu kompliziert erklärt.
Vielen Dank schonmal.


----------



## JCODA (10. Jan 2018)

Speichere doch in deinem map-Array eine 0 für kein Block und die Zahlen 1-10 für die jeweiligen farbigen Blöcke. 
Ansonsten so als Anregung könntest du eine "Block"-Klasse erstellen und dort die Farbe festlegen. (für weitere Effekte bietet sich solch eine Block-Klasse auch an, also vor allem, wenn pro Block weiterer Zustand benötigt wird.)


----------



## Lucaaa (10. Jan 2018)

JCODA hat gesagt.:


> eine "Block"-Klasse erstellen


Hast du da vielleicht einen Denkanstoß für mich? Es soll später auch verschiedene Blöcke geben die eventuell andere Eigenschaften haben (bin mir da noch nicht ganz sicher).


----------

