2013-06-10 3 views
1

Я постараюсь сократить его, у меня есть класс, который привлекает игрока, вызывая класс Cube, чтобы сделать голову, тело, два оружия и две ноги, каждая с разными переменными определенный в моем конструкторе. Но вызов head.r = 1.0f не меняет цвет вообще, это потому, что мой метод куба толкает и выталкивает матрицу?Изменение переменных объекта в Java OpenGL

Глава часть класса игрока

head = new Cube(0.0f, 1.0f, 1.0f, h_x, h_y, h_z, 0.0f, 0.0f, 0.0f, 0.0f, h_length, h_height, h_width); 
    head.cube(drawable); 


    head.r = 1.0f; 

метод Cube

public void cube(GLAutoDrawable drawable) { 
    GL2 gl = drawable.getGL().getGL2(); 

    gl.glPushMatrix(); 

    gl.glColor3f(r, g, b); 
    gl.glTranslatef(x, y, z); 
    gl.glRotatef(angle, pitch, yaw, roll); 
    gl.glScalef(length, height, width); 
    gl.glBegin(GL_QUADS); 

    //front 
    gl.glVertex3f(c, c, c); 
    gl.glVertex3f(c, -c, c); 
    gl.glVertex3f(-c, -c, c); 
    gl.glVertex3f(-c, c, c); 
    //back 
    gl.glVertex3f(c, c, -c); 
    gl.glVertex3f(c, -c, -c); 
    gl.glVertex3f(-c, -c, -c); 
    gl.glVertex3f(-c, c, -c); 
    //top 
    gl.glVertex3f(c, c, c); 
    gl.glVertex3f(c, c, -c); 
    gl.glVertex3f(-c, c, -c); 
    gl.glVertex3f(-c, c, c); 
    //bottom 
    gl.glVertex3f(c, -c, c); 
    gl.glVertex3f(c, -c, -c); 
    gl.glVertex3f(-c, -c, -c); 
    gl.glVertex3f(-c, -c, c); 
    //left 
    gl.glVertex3f(-c, c, c); 
    gl.glVertex3f(-c, -c, c); 
    gl.glVertex3f(-c, -c, -c); 
    gl.glVertex3f(-c, c, -c); 
    //right 
    gl.glVertex3f(c, c, c); 
    gl.glVertex3f(c, -c, c); 
    gl.glVertex3f(c, -c, -c); 
    gl.glVertex3f(c, c, -c); 

    gl.glEnd(); 

    gl.glPopMatrix(); 

} 

P.S. Чтобы избежать путаницы, класс является Cube, а метод - кубом.

Редактировать: Я попытался прокомментировать нажатие и поп, и это все испортило, но цвет головы еще не меняется.

ответ

1

Я понял, что неправильно использовал объекты JOGL, из-за цикла JOGL, который я рисовал, прежде чем менять цвет, но определяя голову в конструкторе моего класса, а затем меняя head.r, вы получили изменение цвета. К сожалению, это не повлияло на мою общую проблему. Продолжайте и закрывайте этот вопрос, извините за потраченное время. Надеюсь, это поможет другим людям.

Смежные вопросы