Hallo,
ich habe mir mit der graphics2D api ein isometrisches spielfeld erstellt. Die tiles sind blöcke und jede seite ist mit einer anderen Farbe mittels testurepaint belegt( bottom,top,etc..) und können mit der maus korrekt ausgewählt werden (also nur die bottom tiles blockspezifisch isses noch nicht möglich). Nun möchte ich mittels texture paint unterschiedliche texturen auf die einzelnen Shapes setzten was auch geht. Allerdings ist die darstellung schlichtweg falsch. Soll heißen, dass die texturen einfach als rechteck draufgeklatscht werden und nicht etwa perspektivisch. Nun habe ich ein Rectangle2D, um die textur anzupassen mit einer x, y koordinate, allerdings scheiterts da an der korrekten berechnung. Daher zunächst die frage geht das überhaupt, wenn ja wie berechnet man dann die korrekten koordinaten?
Wäre für Hilfe, Ideen dankbar.
Hier der relevante Code:
[CODE lang="java" title="texturen auf die seiten zeichnen"]public void renderIsoImagedBlockTile(Graphics2D g2, AffineTransform transform,BufferedImage[] image) {
TexturePaint tpRIGHT_SIDE_FRONT = new TexturePaint(image[0],new Rectangle2D.Double(0,0,tile_width,tile_height));
GeneralPath right_side_front_path = new GeneralPath();
right_side_front_path.moveTo(x,y);
right_side_front_path.lineTo(x+1,y+1);
right_side_front_path.lineTo(x+1,y);
right_side_front_path.lineTo(x,y-1);
right_side_front_path.closePath();
Shape transformedShape_right_side_front_path = transform.createTransformedShape(right_side_front_path);
g2.setPaint(tpRIGHT_SIDE_FRONT);
g2.fill(transformedShape_right_side_front_path);
}
[/CODE]
Gruß Eichelhäer
ich habe mir mit der graphics2D api ein isometrisches spielfeld erstellt. Die tiles sind blöcke und jede seite ist mit einer anderen Farbe mittels testurepaint belegt( bottom,top,etc..) und können mit der maus korrekt ausgewählt werden (also nur die bottom tiles blockspezifisch isses noch nicht möglich). Nun möchte ich mittels texture paint unterschiedliche texturen auf die einzelnen Shapes setzten was auch geht. Allerdings ist die darstellung schlichtweg falsch. Soll heißen, dass die texturen einfach als rechteck draufgeklatscht werden und nicht etwa perspektivisch. Nun habe ich ein Rectangle2D, um die textur anzupassen mit einer x, y koordinate, allerdings scheiterts da an der korrekten berechnung. Daher zunächst die frage geht das überhaupt, wenn ja wie berechnet man dann die korrekten koordinaten?
Wäre für Hilfe, Ideen dankbar.
Hier der relevante Code:
[CODE lang="java" title="texturen auf die seiten zeichnen"]public void renderIsoImagedBlockTile(Graphics2D g2, AffineTransform transform,BufferedImage[] image) {
TexturePaint tpRIGHT_SIDE_FRONT = new TexturePaint(image[0],new Rectangle2D.Double(0,0,tile_width,tile_height));
GeneralPath right_side_front_path = new GeneralPath();
right_side_front_path.moveTo(x,y);
right_side_front_path.lineTo(x+1,y+1);
right_side_front_path.lineTo(x+1,y);
right_side_front_path.lineTo(x,y-1);
right_side_front_path.closePath();
Shape transformedShape_right_side_front_path = transform.createTransformedShape(right_side_front_path);
g2.setPaint(tpRIGHT_SIDE_FRONT);
g2.fill(transformedShape_right_side_front_path);
}
[/CODE]
Gruß Eichelhäer