# Spielfelder erstellen mit Jogl Java durch ein Koordinaten Array



## Alexander_Dubin (10. Dez 2017)

Hallo liebes Forum 
Ich arbeite zurzeit an einem kleinen Spiel das ich für die FH programmieren soll. Wir sollen nur mit Java Jogl arbeiten. Ich arbeite in der Fixed function Pipeline. Es ist ein Mensch ärger dich nicht Spiel. Ich habe ein Problem mit den Spielfeldern, die ich im Moment noch erstmal versuche mit Spielfiguren zu zeichnen. Alles gut, später mache ich daraus kleine Felsbrocken auf dennen die Spielfiguren dann hin und her hüpfen sollen. Im Moment sind die Figuren überall verteilt. aber nicht auf meinem "Spielbrett" wie sie sein sollten. Das ist auf jedenfall ein richtig großes Problem, weil ich den Fehler einfach nicht finde, damit die Figuren anständig angeordnet angezeigt werden. Ich hoffe einfach ihr könnt mir helfen.

Also zu meinem Code. Ich habe eine Klasse namens "Spielfeld" in dem ich die X und Z Koordinaten in einem Array vom Typ Koordinaten speicher. Dieser Typ Koordinaten liefert mir eigentlich die X und Z Werte einzelt die ich durch getxPos und getzPos auslesen kann um die Position der Spielfiguren zu bestimmen. Das sieht in der StartRender Klassen so aus:


```
private void drawSpielfeld(GL2 gl, GLU glu,GLAutoDrawable drawable){
        for(Koordinaten k: SpieleDaten.getSpielFeld().getKoordinaten()){
            gl.glColor3f(1f, 0f, 0f);
            Spielfigur.zeichneFiguren(gl, glu, k.getxPos(), k.getzPos());
            System.err.println("Der X wert der forschleife ist: " + k.getxPos() +
                    " und der z wert der forschleife ist: " + k.getzPos());
            }
    }
```

In der Spielfiguren Klasse sieht der Code momentan so aus:


```
public static void zeichneFiguren( GL2 gl, GLU glu, int x, int z) {

        GLUquadric qobj = glu.gluNewQuadric();
        //gl2.glColor3f(1f, 1f, 1f);
        gl.glTranslated(x, 1.1, z);
        glu.gluQuadricDrawStyle(qobj, GLU.GLU_FILL);
        glu.gluQuadricNormals(qobj, GLU.GLU_FLAT);
        glu.gluSphere(qobj, 0.25f, 30, 10);

        gl.glRotated(90, 1, 0, 0);
        glu.gluQuadricDrawStyle(qobj, GLU.GLU_FILL);
        glu.gluQuadricNormals(qobj, GLU.GLU_FLAT);
        glu.gluCylinder(qobj, 0.0, 0.3, 1, 30, 10);

        gl.glTranslated(0, 0, 1.0f);
        glu.gluQuadricDrawStyle(qobj, GLU.GLU_FILL);
        glu.gluQuadricNormals(qobj, GLU.GLU_FLAT);
        glu.gluCylinder(qobj, 0.3, 0.30, 0.1, 10, 5);

    }
```

Das Problem ist das mir die Spielfiguren an ganz falschen Stellen ausgegeben werden was ich halt komplett nicht verstehe, das sieht so aus.









Ich finde da keine Stelle an der ein Fehler auftauchen könnte auser vielleicht die getKoordinaten() liefert mir wie auch Koordinaten[] das Spielfeld. Aber andererseits ist das richtig weil die Textausgabe in der For-Schleife liefert mir ja die richtigen X und Z Werte. Ich weiß es nicht und ich wäre euch sehr dankbar wenn ihr mir helfen könntet.

LG Alex


----------



## JuKu (10. Dez 2017)

Verwendest du eine Kamera?
Und wo setzt du deine Projektionsmatrix?


----------

