Verschiedenfarbige Steinehab

Lucaaa

Bekanntes Mitglied
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:
Java:
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

Top Contributor
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.)
 

Neue Themen


Oben