Quadrat Textur lädt als Dreieck

Jakob1234

Mitglied
Hallo, ich habe ein Problem. Ich schaue mir zurzeit ein Java Tower Defense Tutorial an. In der Folge (
) wird eine Textur in das Spiel geladen die Textur soll Quadartisch sein aber bei mir ist sie Dreieckig. upload_2018-11-19_19-12-40.png

Der Code aus der Klasse Artist:
Java:
package helpers;

import static org.lwjgl.opengl.GL11.GL_MODELVIEW;
import static org.lwjgl.opengl.GL11.GL_PROJECTION;
import static org.lwjgl.opengl.GL11.GL_QUADS;
import static org.lwjgl.opengl.GL11.glBegin;
import static org.lwjgl.opengl.GL11.glLoadIdentity;
import static org.lwjgl.opengl.GL11.glMatrixMode;
import static org.lwjgl.opengl.GL11.glOrtho;
import static org.lwjgl.opengl.GL11.glVertex2f;

import java.io.IOException;
import java.io.InputStream;

import static org.lwjgl.opengl.GL11.glEnable;
import static org.lwjgl.opengl.GL11.GL_TEXTURE_2D;
import static org.lwjgl.opengl.GL11.*;

import org.lwjgl.LWJGLException;
import org.lwjgl.opengl.Display;
import org.lwjgl.opengl.DisplayMode;
import org.newdawn.slick.opengl.Texture;
import org.newdawn.slick.opengl.TextureLoader;
import org.newdawn.slick.util.ResourceLoader;

public class Artist {
  
    public static final int WIDTH = 1280, HEIGHT = 960;
  
    public static void BeginSession() {
        Display.setTitle("Stone Defense");
        try {
            Display.setDisplayMode(new DisplayMode(WIDTH, HEIGHT));
            Display.create();
        } catch (LWJGLException e) {
            e.printStackTrace();
        }
      
        glMatrixMode(GL_PROJECTION);
        glLoadIdentity();      
        glOrtho(0, WIDTH, HEIGHT, 0, 1, -1);
        glMatrixMode(GL_MODELVIEW);
        glEnable(GL_TEXTURE_2D);
    }
  
    public static void DrawQuad(float x, float y, float width, float height) {
        glBegin(GL_QUADS);
        glVertex2f(x, y); //Top left corner
        glVertex2f(x + width, y); //Top right corner
        glVertex2f(x + width, y + height); //Bottom right corner
        glVertex2f(x, y + height); //Bottom left corner
        glEnd();
    }
  
    public static void DrawQuadTex(Texture tex, float x, float y, float width, float height) {
        tex.bind();
        glTranslatef(x, y, 0);
        glBegin(GL_QUADS);
        glTexCoord2f(0, 0);
        glVertex2f(0, 0);
        glTexCoord2f(1, 0);
        glVertex2f(width, 0);
        glTexCoord2f(1, 1);
        glVertex2f(1, 1);
        glVertex2f(width, height);
        glTexCoord2f(0, 1);
        glVertex2f(0, height);
        glEnd();
        glLoadIdentity();
      
    }
  
    public static Texture LoadTexture(String path, String fileType) {
        Texture tex = null;
        InputStream in = ResourceLoader.getResourceAsStream(path);
        try {
            tex = TextureLoader.getTexture(fileType, in);
        } catch (IOException e) {          
            e.printStackTrace();
        }
        return tex;      
    }

}

Aus Tile:
Java:
package data;

import org.newdawn.slick.opengl.Texture;

public class Tile {
  
    private float x, y, width, height;
    private Texture texture;
  
    public Tile(float x, float y, float width, float height, Texture texture) {
        this.x = x;
        this.y = y;
        this.width = width;
        this.height = height;
    }
  

}
Und aus Boot:
Java:
package data;

import org.lwjgl.LWJGLException;
import org.lwjgl.opengl.Display;
import org.lwjgl.opengl.DisplayMode;
import org.newdawn.slick.opengl.Texture;

import static org.lwjgl.opengl.GL11.*;

import static helpers.Artist.*;

public class Boot {
  
    public Boot() {
      
        BeginSession();
      
      
      
        Texture t = LoadTexture("res/dirt64.png", "PNG");
        Texture t2 = LoadTexture("res/Grass_1.png", "PNG");
        while(!Display.isCloseRequested()) {
          
            DrawQuadTex(t, 0, 0, 64, 64);
            DrawQuadTex(t2, 64, 0, 64, 64);
          
          
          
          
            Display.update();
            Display.sync(60);
          
          
        }
      
        Display.destroy();
    }
  
    public static void main(String[] args) {
        new Boot();
    }

}

Es würde mich freuen wenn ihr mir helfen könnt danke!
 
Zuletzt bearbeitet von einem Moderator:

httpdigest

Top Contributor
Sorry, aber folgendes macht keinen Sinn:
Java:
public static void DrawQuadTex(Texture tex, float x, float y, float width, float height) {
  tex.bind();
  glTranslatef(x, y, 0);
  glBegin(GL_QUADS);
  glTexCoord2f(0, 0);
  glVertex2f(0, 0);
  glTexCoord2f(1, 0);
  glVertex2f(width, 0);
  glTexCoord2f(1, 1);
  glVertex2f(1, 1);// <- wieso (1, 1)?? sollte wohl eher (width, height) sein?
  glVertex2f(width, height); // <- nochmal ein vertex?! Jetzt ist das Ganze kein Quad mehr, da du 5 vertices zeichnest
  glTexCoord2f(0, 1);
  glVertex2f(0, height); // <- das hier ist der 5. Vertex
  glEnd();
  glLoadIdentity();
}
 

Jakob1234

Mitglied
Vielen Dank! Das war der Fehler ich war schon am Verzweifeln aber jetzt geht es großen Dank.
Ich hab noch eine Frage wie hast du meinen Code so geschickt, dass es wie soll ich sagen schön wie ein Code im Editor aussieht gemacht?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Mehrere Rechtecke in großes Quadrat einzeichnen Spiele- und Multimedia-Programmierung 5
L Textur färben Spiele- und Multimedia-Programmierung 1
T [LWJGL] Textur / File wieder freigeben Spiele- und Multimedia-Programmierung 4
S [LWJGL] Zweimal selbe Textur trotz unterschiedlicher IDs Spiele- und Multimedia-Programmierung 3
R LWJGL: Textur -> unsichtbare Stellen, wie erzeugen? Spiele- und Multimedia-Programmierung 4
F LWJGL: Textur ändern mit GL11.readPixels Spiele- und Multimedia-Programmierung 5
A [LWJGL] BMP Textur wird nicht richtig dargestellt Spiele- und Multimedia-Programmierung 8
J Java3D - Textur laden geht nicht Spiele- und Multimedia-Programmierung 9
Creylon [LWJGL] Textur wird falsch angezeigt Spiele- und Multimedia-Programmierung 12
H Java3D - Textur aufs innere einer Sphere mappen Spiele- und Multimedia-Programmierung 9
S OpenGL Textur unsauber Spiele- und Multimedia-Programmierung 2
R OpenGL Textur mit verschiedenen bit depths Spiele- und Multimedia-Programmierung 6
A OpenGL Textur und nicht Textur Spiele- und Multimedia-Programmierung 2
T JMonkey Textur nicht ganz angezeigt Spiele- und Multimedia-Programmierung 3
X JOGL - Textur auf Quad verzerrt Spiele- und Multimedia-Programmierung 2
M Wavefront Object Loader zeigt nur eine Textur an. Spiele- und Multimedia-Programmierung 7
P Java3D Textur verzerrt Spiele- und Multimedia-Programmierung 3
F Kleine GL Texturen auf grosse GL Textur kopieren? Spiele- und Multimedia-Programmierung 24
D Jogl:Textur auf GLUquadric wird vertikal spiegelverkehrt dargestellt Spiele- und Multimedia-Programmierung 2
F 2D Textur auf dem Display 2x so groß wie angeben? Spiele- und Multimedia-Programmierung 4
N Jogl Probleme mit dem Buffer beim laden einer Textur Spiele- und Multimedia-Programmierung 2
radiac Stringtext mit BufferedImage Textur. Spiele- und Multimedia-Programmierung 6
E JPCT textur problem Spiele- und Multimedia-Programmierung 8
D Java3D Textur Problem Spiele- und Multimedia-Programmierung 9
G Textur in Java3D Spiele- und Multimedia-Programmierung 3
S KameraBild als Textur? Spiele- und Multimedia-Programmierung 4
E Textur-Problem Spiele- und Multimedia-Programmierung 2
A "Textur-Achse" drehen. Spiele- und Multimedia-Programmierung 2
G Textur auf Box jede Sekunde erneuern Spiele- und Multimedia-Programmierung 2
S Zylinder mit Textur erzeugt out of memory :( Spiele- und Multimedia-Programmierung 3
G Textur laden auf ein eingelesenes 3D Objekt Spiele- und Multimedia-Programmierung 4
M Problem mit Textur Spiele- und Multimedia-Programmierung 4
J Java3D: Textur kacheln? Spiele- und Multimedia-Programmierung 2
D TextureLoader - Textur von Url laden Spiele- und Multimedia-Programmierung 2
S Bump Mapping (Relief-Textur) in Java3D Spiele- und Multimedia-Programmierung 3
N Textur - Koordinaten Spiele- und Multimedia-Programmierung 2
H Musik Datei lädt nicht? Spiele- und Multimedia-Programmierung 8

Ähnliche Java Themen

Neue Themen


Oben