Programação em JOGL

0 respostas
lucnunes

Senhores, boa noite.

Estou tentando elaborar um trabalho de faculdade de programação 3D em JOGL cujo objetivo é fazer com que uma esfera se movimente dentro de um cubo num eixo X do plano cartesiano, de forma que a esfera toque as paredes do cubo. Consegui construir tais figuras mas consigo fazer movimentar a esfera apenas para um lado.

Gostaria que me ajudassem a fazer com que a esfera fique se movendo de um lado para outro constantemente. Segue o código a baixo do método display:

public void display(GLAutoDrawable drawable) {
GL gl = drawable.getGL();

// Clear the drawing area
    gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);
    // Reset the current matrix to the "identity"
    gl.glLoadIdentity();

    // Move the "drawing cursor" around
    gl.glTranslatef(0.0f, 0.0f, -6.0f);


    h2 = (float)a/(float)b;      
   
    gl.glPopMatrix();
   
    gl.glViewport(0, 0, a, b);
    gl.glMatrixMode(GL.GL_PROJECTION);
    gl.glLoadIdentity();
    glu.gluPerspective(45.0f, h2, 0.5, 500.0);
    //gl.glOrtho(-65.0, 65.0, -65, 65, -400, 400);
    gl.glMatrixMode(GL.GL_MODELVIEW);
    gl.glLoadIdentity();
    
    glu.gluLookAt(10, 10, 100, 0, 0, 0, 0, 2, 0);
    gl.glColor3f(1.0f, 1.0f, 1.0f);

   //  gl.glTranslatef(cx, 0.0f, -6.0f); //translate do cubo
    glut.glutWireCube(50);
    cx+=25;

    gl.glTranslatef(tr_cilind, 0.0f, -6.0f);
    glut.glutWireCylinder(2, 2, 100, 5);
    

        if (tr_cilind<25) {
           d=1;
        }
        if(tr_cilind>-30){
           d=0;
        }
        if(d==1){
            tr_cilind++;
        }
        if(d==0){
            tr_cilind--;
          
        }      
}

Agradeço antecipadamente,

Lucio Nunes

Criado 30 de novembro de 2010
Respostas 0
Participantes 1