Во -первых, мне нужно, чтобы главный герой (как спрайт) этой видеоигры Mario, такой как Pattforms Game, выполняя Jump Action, поднимающийся на 4 единицы высоты в ответ, когда я толкаю ключ прыжка. Именно в функции дисплея (функция OpenGL Java выполняется повторение в цикле): < /p>
@Override
public void display(GLAutoDrawable glad){
< /code>
и функция init, где инициализируется несколько переменных в opengl java: < /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>
и графическая часть проблемы (которая вызывается из строки функции дисплея Opengl java): < /p>
dibujaEscenario(glad, x1escenarioacum, y1escenarioacum, ladoEsc);
dibujaMuro1(glad, x1Pared1acum, y1Pared1acum, widthMuro1, heightMuro1);
dibujaPersonaje(glad, 3.5f, 1.5f, ladoPer);
< /code>
и графическая часть задачи: < /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 - это увеличение графических текстур, связанных с проблемой, а Saltarcontadoraltura - это количество высот в единицах, которые мне нужно, чтобы символ должен подняться) (код прыжков вызывается Из линии функции дисплея opengl java): < /p>
verSiSaltar();
< /code>
и код INCY и Saltarcontadoraltura увеличивается и уменьшается: < /p>
if((saltar)&&(saltarContadorAltura=0.0f))
{
incy = 1.0f;
saltarContadorAltura=saltarContadorAltura+1.0f;
if(saltarContadorAltura==4.0f){saltar = false;
}
}
< /code>
Далее мне нужно, чтобы символ упал 4 единицы высоты до полу: < /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;}
}
Как это (символ) может подняться и спуститься должным образом?
Во -первых, мне нужно, чтобы главный герой (как спрайт) этой видеоигры Mario, такой как Pattforms Game, выполняя Jump Action, поднимающийся на 4 единицы высоты в ответ, когда я толкаю ключ прыжка. Именно в функции дисплея (функция OpenGL Java выполняется повторение в цикле): < /p> [code]@Override public void display(GLAutoDrawable glad){ < /code> и функция init, где инициализируется несколько переменных в opengl java: < /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> и графическая часть проблемы (которая вызывается из строки функции дисплея Opengl java): < /p> dibujaEscenario(glad, x1escenarioacum, y1escenarioacum, ladoEsc); dibujaMuro1(glad, x1Pared1acum, y1Pared1acum, widthMuro1, heightMuro1); dibujaPersonaje(glad, 3.5f, 1.5f, ladoPer); < /code> и графическая часть задачи: < /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 - это увеличение графических текстур, связанных с проблемой, а Saltarcontadoraltura - это количество высот в единицах, которые мне нужно, чтобы символ должен подняться) (код прыжков вызывается Из линии функции дисплея opengl java): < /p> verSiSaltar(); < /code> и код INCY и Saltarcontadoraltura увеличивается и уменьшается: < /p> if((saltar)&&(saltarContadorAltura=0.0f)) { incy = 1.0f; saltarContadorAltura=saltarContadorAltura+1.0f; if(saltarContadorAltura==4.0f){saltar = false; }
} < /code> Далее мне нужно, чтобы символ упал 4 единицы высоты до полу: < /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] Как это (символ) может подняться и спуститься должным образом?
Во -первых, мне нужно, чтобы главный герой этой видеоигры поднимался на 4 единицы высоты в ответ, когда я толкаю ключ прыжка. Это в функции дисплея:
if((saltar)&&(saltarContadorAltura=0.0f))
{
incy = 1.0f;...
Во -первых, мне нужно, чтобы главный герой (как спрайт) этой видеоигры поднимался на 4 единицы высоты в ответ, когда я толкаю ключ прыжка. Именно в функции дисплея (функция OpenGL Java выполняется повторение в цикле)
@Override
public void...
Во -первых, мне нужно, чтобы главный герой (как спрайт) этой видеоигры поднимался на 4 единицы высоты в ответ, когда я толкаю ключ прыжка. Именно в функции дисплея (функция OpenGL Java выполняется повторение в цикле):
@Override
public void...
Во -первых, мне нужно, чтобы главный герой (как спрайт) этой видеоигры поднимался на 4 единицы высоты в ответ, когда я толкаю ключ прыжка. Именно в функции дисплея (функция OpenGL Java выполняется повторение в цикле):
@Override
public void...
Во -первых, мне нужно, чтобы главный герой этой видеоигры поднимается на 4 единицы высоты в ответ на то, когда IP толкнет клавишу прыжка.
if((saltar)&&(saltarContadorAltura=0.0f))
{
incy = 1.0f;
saltarContadorAltura=saltarContadorAltura+1.0f;...