Charakter -Gewinnhöhe und Größe verlieren [geschlossen]Java

Java-Forum
Guest
 Charakter -Gewinnhöhe und Größe verlieren [geschlossen]

Post by Guest »

Die erste, ich brauche, dass der Hauptcharakter (als Sprite) dieses Videospiels 4 Einheiten der Höhe aufsteigt, als ich den Sprungschlüssel drücke. Es befindet sich in der Anzeigefunktion (Funktion von OpenGL Java, die sich wiederholt in Schleife ausgeführt hat): < /p>

Code: Select all

@Override
public void display(GLAutoDrawable glad){
< /code>
Mario ähnliche Plattformen Game
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 Problem 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?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post