Die erste, ich brauche, dass der Hauptcharakter (als Sprite) des Spiels dieses Videospiels Mario ähnliches Pattforms -Spiel, das die Sprungwirkung erreicht, die 4 Einheiten der Höheneinheiten erhöht, als ich den Sprungschlüssel drücke. In der Anzeigefunktion (Funktion von OpenGL Java wird die Wiederholung in Schleife ausgeführt): < /p>
@Override
public void display(GLAutoDrawable glad){
< /code>
und die Init -Funktion, in der mehrere Variablen in OpenGL Java initialisiert wurden: < /p>
@Override
public void init(GLAutoDrawable glad){
final GL2 gl = glad.getGL().getGL2(); //Se genera un objeto de tipo GL2
final GLU glu = new GLU(); //Se genera un objeto de tipo GLU
incx=incy=0;
x1escenario=0;//coordenadas inicuales origen del escenario
y1escenario=0;
x1escenarioacum = x1escenario;
y1escenarioacum = y1escenario;
x1PerSimulada = posPersonajeX;
y1PerSimulada = posPersonajeY;
x1Pared1acum = posPared1X;
y1Pared1acum = posPared1Y;}
< /code>
und der grafische Teil des Problems lautet (die aus der Zeile der Anzeigefunktion OpenGL Java aufgerufen wird): < /p>
dibujaEscenario(glad, x1escenarioacum, y1escenarioacum, ladoEsc);
dibujaMuro1(glad, x1Pared1acum, y1Pared1acum, widthMuro1, heightMuro1);
dibujaPersonaje(glad, 3.5f, 1.5f, ladoPer);
< /code>
und der grafische Teil des Problems: < /p>
public void dibujaEscenario(GLAutoDrawable glad, float x1, float y1, float lado) {
final GL2 gl = glad.getGL().getGL2(); //Se
gl.glPointSize(12f);
gl.glBegin(GL2.GL_QUADS);//Se comienza a dibujar los puntos
gl.glColor3f(1, 0, 0);//Se activa el color rojo
x1escenarioacum = x1escenarioacum + (-1)* (incx);
x1Pared1acum = x1Pared1acum + (-1) *incx; //también se reposicionan muros verticales
x1PerSimulada = x1PerSimulada + incx;
y1escenarioacum = y1escenarioacum + (-1) * incy;//with an y increase the scenary decreases his y coordinate
y1Pared1acum = y1Pared1acum + (-1) * incy; //with an y increase, the Pared(wall) decreases his y coordinate. También se reposicionan muros verticales
y1PerSimulada = y1PerSimulada + incy;
pos12 = new Posicion(x1escenarioacum, y1escenarioacum);
p2=new Posicion(x1PerSimulada, y1PerSimulada);
paredCerc12 = new ParedCercana(pos12, widthSuelo1, heightSuelo1, true, false, "Suelo", "techo");
personaje = new Personaje(p2, widthPersonaje, heightPersonaje, true, false, natPer);
//simulada porque la camara, esta en el personaje princi, y realmente, se mueve solo el escenario y no este (personaje princi)
posAcumEscenarioXAntesDeColision =x1escenarioacum;
posAcumEscenarioXAntesDeColision = x1Pared1acum;
gl.glVertex2f(x1escenarioacum, y1escenarioacum+lado-8.5f); //Se dibuja el punto
gl.glColor3f(0, 0, 1);//Se activa el color azul
gl.glVertex2f(x1escenarioacum+lado, y1escenarioacum+lado-8.5f);
gl.glColor3f(0, 1, 0);//Se activa el color verde
gl.glVertex2f(x1escenarioacum+lado, y1escenarioacum);
gl.glColor3f(0, 0, 0);//Se desactivan todos los colores
gl.glVertex2f(x1escenarioacum, y1escenarioacum);
gl.glEnd();
incx = 0;
if((!saltarBajando)&&(!saltar)&&(!saltarVenimosdeSaltarArriba)) {
incy = 0;
//saltarVenimosdeSaltarAbajo=false;
}
}
public void dibujaMuro1(GLAutoDrawable glad, float x1, float y1, float lado, float Muro1height) {
final GL2 gl = glad.getGL().getGL2(); //Se
gl.glPointSize(12f);
gl.glBegin(GL2.GL_QUADS);//Se comienza a dibujar los puntos
gl.glColor3f(1, 0, 0);//Se activa el color rojo
//x1Pared1acum = x1Pared1acum - incx;
gl.glVertex2f(x1Pared1acum, y1Pared1acum+Muro1height*1.5f); //Se dibuja el punto
gl.glColor3f(0, 0, 1);//Se activa el color azul
gl.glVertex2f(x1Pared1acum + lado, y1Pared1acum+Muro1height*1.5f);
gl.glColor3f(0, 1, 0);//Se activa el color verde
gl.glVertex2f(x1Pared1acum+lado, y1Pared1acum);
gl.glColor3f(0, 0, 0);//Se desactivan todos los colores
gl.glVertex2f(x1Pared1acum, y1Pared1acum);
gl.glEnd();
incx = 0;
}
public void dibujaPersonaje(GLAutoDrawable glad, float x1, float y1, float lado) {
final GL2 gl = glad.getGL().getGL2(); //Se
gl.glPointSize(12f);
/*GLQUADS ORDER: top left.
top right.
bottom right.
bottom left*/
gl.glEnable(GL2.GL_TEXTURE_2D);
posPersonajeX =x1;
posPersonajeY =y1;
if((saltar)||(saltarBajando)||(hasaltadoUnaVez))
{
//gl.glEnable(GL2.GL_TEXTURE_2D); //carga texturas:
//gl.glBindTexture(GL2.GL_TEXTURE_2D, texture2);
t2.enable(gl);
t2.bind(gl);
// hasaltadoUnaVez = true;
}
else{
//gl.glBindTexture(GL2.GL_TEXTURE_2D, texture);
t.enable(gl);
t.bind(gl);
}
//widthPersonaje = lado; //esto no cambia por lo que lo hago en init()
gl.glBegin(GL2.GL_QUADS);//Se comienza a dibujar los puntos
gl.glColor4f(1.0f, 1.0f, 1.0f, 1.0f);//Se activa el color rojo
gl.glTexCoord2f(0.0f, 1.0f);
gl.glVertex2f(x1, y1+lado+lado); //Se dibuja el punto
//gl.glColor3f(1, 0, 0);//Se activa el color azul
gl.glTexCoord2f(1.0f, 1.0f);
gl.glVertex2f(x1+lado, y1+lado+lado);
gl.glTexCoord2f(1.0f, 0.0f);
gl.glVertex2f(x1+lado, y1);
//gl.glColor3f(0, 1, 0);//Se activa el color verde
//gl.glColor3f(0, 0, 0);//Se desactivan todos los colores
gl.glTexCoord2f(0.0f, 0.0f);
gl.glVertex2f(x1, y1);
//gl.glDisable(GL2.GL_TEXTURE_2D);
//gl.glVertex3f(x1escenario, incy, incx);
//gl.glVertex3f(x1escenario, incy, incx);
//gl.glVertex3f(x1escenario, incy, incx);
//gl.glVertex3f(x1escenario, incy, incx);
gl.glEnd();
}
< /code>
(Incy ist die Erhöhung der mit dem [url=viewtopic.php?t=11587]Problem[/url] verbundenen grafischen Texturen, und SaltarContadoraltura ist die Anzahl der Höhen in Einheiten, die ich benötige, damit das Zeichen steigen muss) (der Sprungcode heißt Aus der Linie der Anzeige -OpenGL -Java -Funktion): < /p>
verSiSaltar();
< /code>
und der Code von Incy und SaltarContadoraltura nimmt zu und nimmt ab: < /p>
if((saltar)&&(saltarContadorAltura=0.0f))
{
incy = 1.0f;
saltarContadorAltura=saltarContadorAltura+1.0f;
if(saltarContadorAltura==4.0f){saltar = false;
}
}
< /code>
Als nächstes brauche ich, dass der Zeichen 4 Einheiten Höhe bis zum Boden fällt: < /p>
if(saltarContadorAltura==4.0f)
{
incy=-1.0f;
saltarContadorAltura = saltarContadorAltura -1.0f;
}
if((saltarContadorAltura0.0f))
{
incy=-1.0f;
saltarContadorAltura = saltarContadorAltura -1.0f;
if(saltarContadorAltura==0.0f) {incy=0.0f;}
}
Wie kann es (das Zeichen) nach oben gehen und richtig nach unten gehen?
Die erste, ich brauche, dass der Hauptcharakter (als Sprite) des Spiels dieses Videospiels Mario ähnliches Pattforms -Spiel, das die Sprungwirkung erreicht, die 4 Einheiten der Höheneinheiten erhöht, als ich den Sprungschlüssel drücke. In der Anzeigefunktion (Funktion von OpenGL Java wird die Wiederholung in Schleife ausgeführt): < /p> [code]@Override public void display(GLAutoDrawable glad){ < /code> und die Init -Funktion, in der mehrere Variablen in OpenGL Java initialisiert wurden: < /p> @Override public void init(GLAutoDrawable glad){ final GL2 gl = glad.getGL().getGL2(); //Se genera un objeto de tipo GL2 final GLU glu = new GLU(); //Se genera un objeto de tipo GLU incx=incy=0; x1escenario=0;//coordenadas inicuales origen del escenario y1escenario=0; x1escenarioacum = x1escenario; y1escenarioacum = y1escenario; x1PerSimulada = posPersonajeX; y1PerSimulada = posPersonajeY; x1Pared1acum = posPared1X; y1Pared1acum = posPared1Y;} < /code> und der grafische Teil des Problems lautet (die aus der Zeile der Anzeigefunktion OpenGL Java aufgerufen wird): < /p> dibujaEscenario(glad, x1escenarioacum, y1escenarioacum, ladoEsc); dibujaMuro1(glad, x1Pared1acum, y1Pared1acum, widthMuro1, heightMuro1); dibujaPersonaje(glad, 3.5f, 1.5f, ladoPer); < /code> und der grafische Teil des Problems: < /p> public void dibujaEscenario(GLAutoDrawable glad, float x1, float y1, float lado) { final GL2 gl = glad.getGL().getGL2(); //Se gl.glPointSize(12f); gl.glBegin(GL2.GL_QUADS);//Se comienza a dibujar los puntos gl.glColor3f(1, 0, 0);//Se activa el color rojo x1escenarioacum = x1escenarioacum + (-1)* (incx); x1Pared1acum = x1Pared1acum + (-1) *incx; //también se reposicionan muros verticales x1PerSimulada = x1PerSimulada + incx; y1escenarioacum = y1escenarioacum + (-1) * incy;//with an y increase the scenary decreases his y coordinate y1Pared1acum = y1Pared1acum + (-1) * incy; //with an y increase, the Pared(wall) decreases his y coordinate. También se reposicionan muros verticales y1PerSimulada = y1PerSimulada + incy; pos12 = new Posicion(x1escenarioacum, y1escenarioacum); p2=new Posicion(x1PerSimulada, y1PerSimulada); paredCerc12 = new ParedCercana(pos12, widthSuelo1, heightSuelo1, true, false, "Suelo", "techo"); personaje = new Personaje(p2, widthPersonaje, heightPersonaje, true, false, natPer);
//simulada porque la camara, esta en el personaje princi, y realmente, se mueve solo el escenario y no este (personaje princi)
posAcumEscenarioXAntesDeColision =x1escenarioacum; posAcumEscenarioXAntesDeColision = x1Pared1acum; gl.glVertex2f(x1escenarioacum, y1escenarioacum+lado-8.5f); //Se dibuja el punto gl.glColor3f(0, 0, 1);//Se activa el color azul gl.glVertex2f(x1escenarioacum+lado, y1escenarioacum+lado-8.5f); gl.glColor3f(0, 1, 0);//Se activa el color verde gl.glVertex2f(x1escenarioacum+lado, y1escenarioacum); gl.glColor3f(0, 0, 0);//Se desactivan todos los colores gl.glVertex2f(x1escenarioacum, y1escenarioacum); gl.glEnd(); incx = 0; if((!saltarBajando)&&(!saltar)&&(!saltarVenimosdeSaltarArriba)) { incy = 0; //saltarVenimosdeSaltarAbajo=false; } }
public void dibujaMuro1(GLAutoDrawable glad, float x1, float y1, float lado, float Muro1height) { final GL2 gl = glad.getGL().getGL2(); //Se gl.glPointSize(12f); gl.glBegin(GL2.GL_QUADS);//Se comienza a dibujar los puntos gl.glColor3f(1, 0, 0);//Se activa el color rojo //x1Pared1acum = x1Pared1acum - incx; gl.glVertex2f(x1Pared1acum, y1Pared1acum+Muro1height*1.5f); //Se dibuja el punto gl.glColor3f(0, 0, 1);//Se activa el color azul gl.glVertex2f(x1Pared1acum + lado, y1Pared1acum+Muro1height*1.5f); gl.glColor3f(0, 1, 0);//Se activa el color verde gl.glVertex2f(x1Pared1acum+lado, y1Pared1acum); gl.glColor3f(0, 0, 0);//Se desactivan todos los colores gl.glVertex2f(x1Pared1acum, y1Pared1acum); gl.glEnd(); incx = 0; }
public void dibujaPersonaje(GLAutoDrawable glad, float x1, float y1, float lado) { final GL2 gl = glad.getGL().getGL2(); //Se gl.glPointSize(12f); /*GLQUADS ORDER: top left. top right. bottom right. bottom left*/ gl.glEnable(GL2.GL_TEXTURE_2D); posPersonajeX =x1; posPersonajeY =y1; if((saltar)||(saltarBajando)||(hasaltadoUnaVez)) { //gl.glEnable(GL2.GL_TEXTURE_2D); //carga texturas:
//gl.glBindTexture(GL2.GL_TEXTURE_2D, texture2); t2.enable(gl); t2.bind(gl); // hasaltadoUnaVez = true; } else{ //gl.glBindTexture(GL2.GL_TEXTURE_2D, texture); t.enable(gl); t.bind(gl); } //widthPersonaje = lado; //esto no cambia por lo que lo hago en init() gl.glBegin(GL2.GL_QUADS);//Se comienza a dibujar los puntos gl.glColor4f(1.0f, 1.0f, 1.0f, 1.0f);//Se activa el color rojo gl.glTexCoord2f(0.0f, 1.0f); gl.glVertex2f(x1, y1+lado+lado); //Se dibuja el punto //gl.glColor3f(1, 0, 0);//Se activa el color azul gl.glTexCoord2f(1.0f, 1.0f); gl.glVertex2f(x1+lado, y1+lado+lado); gl.glTexCoord2f(1.0f, 0.0f); gl.glVertex2f(x1+lado, y1); //gl.glColor3f(0, 1, 0);//Se activa el color verde
//gl.glColor3f(0, 0, 0);//Se desactivan todos los colores gl.glTexCoord2f(0.0f, 0.0f); gl.glVertex2f(x1, y1); //gl.glDisable(GL2.GL_TEXTURE_2D);
//gl.glVertex3f(x1escenario, incy, incx);
//gl.glVertex3f(x1escenario, incy, incx);
//gl.glVertex3f(x1escenario, incy, incx);
//gl.glVertex3f(x1escenario, incy, incx); gl.glEnd(); } < /code> (Incy ist die Erhöhung der mit dem [url=viewtopic.php?t=11587]Problem[/url] verbundenen grafischen Texturen, und SaltarContadoraltura ist die Anzahl der Höhen in Einheiten, die ich benötige, damit das Zeichen steigen muss) (der Sprungcode heißt Aus der Linie der Anzeige -OpenGL -Java -Funktion): < /p> verSiSaltar(); < /code> und der Code von Incy und SaltarContadoraltura nimmt zu und nimmt ab: < /p> if((saltar)&&(saltarContadorAltura=0.0f)) { incy = 1.0f; saltarContadorAltura=saltarContadorAltura+1.0f; if(saltarContadorAltura==4.0f){saltar = false; }
} < /code> Als nächstes brauche ich, dass der Zeichen 4 Einheiten Höhe bis zum Boden fällt: < /p> if(saltarContadorAltura==4.0f) { incy=-1.0f; saltarContadorAltura = saltarContadorAltura -1.0f; } if((saltarContadorAltura0.0f)) { incy=-1.0f; saltarContadorAltura = saltarContadorAltura -1.0f; if(saltarContadorAltura==0.0f) {incy=0.0f;} } [/code] Wie kann es (das Zeichen) nach oben gehen und richtig nach unten gehen?
Bild
Was stellt „LELL“ oben links im beigefügten Grafikbild dar?
Wie ändere ich die Einheiten auf der Y-Achse?
Wie soll ich die Einheiten entlang der Y-Achse ändern, wenn ich möchte?
Wie ändere ich...
Ich bin sehr verblüfft und ist ein wenig besorgt, um das folgende Verhalten zu entdecken, bei dem ich zwei Tests und zwei Vorrichtungen habe. import pytest
Ich versuche, LWJGL mit dem Beispiel für das Erstensanschluss zu verwenden (von {welche unveränderte Funktionen gut funktionieren}), aber es wird OpenGL es 3.0 verwendet (aus Gründen, die irrelevant...
Myers Difff-Algorithmus funktioniert auf Charakterebene und identifiziert bei jedem Schritt Einfügung, Entfernung oder No-Operation. Zum Beispiel führt der Vergleich von pqrsxrsrsz (alte...
Ich möchte Maßkonvertierungen für mehrere Typen (z. B. Länge, Volumen, Temperatur usw.) in verschiedenen Systemen unterstützen. Für die Temperatur können wir beispielsweise Einheiten wie Kelvin und...