• Wir präsentieren Dir heute ein Stellenangebot für einen Java Entwickler - m/w/d in Augsburg, München, Stuttgart oder Bamberg. Hier geht es zur Jobanzeige

TexturePaint Isometrische Darstellung

E

Eichelhäer

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

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);
}

Gruß Eichelhäer
 
E

Eichelhäer

Bekanntes Mitglied
Hallo nochmal, mittlerweile habe ich folgende Methode:

Render a single tile:
public void renderIsoImagedTile(Graphics2D g2,AffineTransform transform, BufferedImage image) {
    Shape transformedShape = transform.createTransformedShape(new Rectangle2D.Double(x,y,1,1));
    TexturePaint tp = new TexturePaint(image,new Rectangle2D.Double(x,y,tile_width,tile_height));
    g2.setPaint(tp);
    g2.fill(transformedShape);
}

Ok, nehmen wir eine Kachel (ohne Textur), diese wird um 45 grad gedreht und angezeigt. Wenn ich darauf jetzt eine Textur zeichnen möchte geht das auch, allerdings ist diese textur immer fix und wird stets als orthogonales rechteck innerhalb der "Shape" angezeigt. Ich versuche nun zu erreichen, eine Textur auf eine Kachel zu zeichnen die ihreseits wieder um 45 grad gedreht ist. Ich erhalte immer das ergebnis einer starren ungedrehten textur. Ich habe nun naheliegenderweise versucht das bild seinerseits zu drehen und texture paint zu übergeben, allerdings mit dem selben ergebnis. Weiss da jemand rat?
 
mihe7

mihe7

Top Contributor
Funktioniert es evtl. wenn Du die Transformation auf einen per g2.create() erzeugten Context anwendest?
 
E

Eichelhäer

Bekanntes Mitglied
Hab ne andere Lösung gefunden. Mich hatte texture paint nur interessiert, weil die darstellung von texturen in einem pseudo 3d raum scheinbar korrekt sind. Allerdings weiss ich das nicht sicher. Danke trotzdem für die antwort.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
TiME-SPLiNTER TexturePaint & fillRect Spiele- und Multimedia-Programmierung 3
E Isometrische Minimap Spiele- und Multimedia-Programmierung 1
E Isometrische Tiles mit unterschiedlicher Größe an korrekter Position zeichnen Spiele- und Multimedia-Programmierung 1
T Isometrische Map Zoomen Spiele- und Multimedia-Programmierung 2
T Iteration über isometrische Map Spiele- und Multimedia-Programmierung 3
c_sidi90 Isometrische Darstellung Spiele- und Multimedia-Programmierung 3
Quaxli isometrische Sprites erstellen Spiele- und Multimedia-Programmierung 2
M schematische Darstellung TicTacToe Spiele- und Multimedia-Programmierung 7
A Methoden zur flüssigen Darstellung von Spielen Spiele- und Multimedia-Programmierung 7
A Probleme mit Darstellung von Umgebungen mittels mehrdimensionaler Arrays Spiele- und Multimedia-Programmierung 8
L Korrekte Darstellung von Wasser in 2D Spiel Spiele- und Multimedia-Programmierung 4
L Lwjgl Darstellung eines Kreises im Raum Spiele- und Multimedia-Programmierung 3
A Schnelle 2D darstellung Spiele- und Multimedia-Programmierung 12
S Jogl Problem bei Darstellung Spiele- und Multimedia-Programmierung 9
C Grafische Darstellung der Mandelbrotmenge Spiele- und Multimedia-Programmierung 3
S Fehlerhafte Darstellung durch Transparenz? Spiele- und Multimedia-Programmierung 8
F Darstellung einer tierischen Zelle Spiele- und Multimedia-Programmierung 3
egrath [Java3D] Keine Darstellung trotz Geometrie und Licht Spiele- und Multimedia-Programmierung 6
C Darstellung von Datensätzen mit Beziehungen in Java? Spiele- und Multimedia-Programmierung 6
M Darstellung einer schwingenden Membran? Spiele- und Multimedia-Programmierung 23

Ähnliche Java Themen

Anzeige

Neue Themen


Oben