2014-09-06 5 views
0

Я хочу нарисовать многоугольник как собственный объект в своем классе, а не как часть метода отображения. Я об этом не нашел, надеюсь, что кто-то здесь может мне помочь.jogl, polygon как собственный объект/класс

public PolygonalGameObject(GameObject parent, double points[], 
     double[] fillColour, double[] lineColour) { 
    super(parent); 

    myPoints = points; 
    myFillColour = fillColour; 
    myLineColour = lineColour; 
} 

public void drawSelf(GL2 gl) { 

// TODO: Write this method 

    gl.glMatrixMode(GL2.GL_MODELVIEW); 
    gl.glLoadIdentity(); 

    gl.glBegin(GL2.GL_POLYGON);{ 
    for (int i = 0; i < myPoints.length; i += 2) { 
     double x = myPoints[i]; 
     double y = myPoints[i + 1]; 
     gl.glVertex2d(x, y); 
    } 
    }gl.glEnd(); 
} 

GameObject содержит несколько polygonalGameObjects в виде графа сцены/дерево

Я очень новичок в этом (как программирование и графика), так что если кто-нибудь получил некоторые хорошие учебники пожалуйста, напишите тогда!

Большое спасибо!

ответ

0

Вам нужен текущий контекст OpenGL, чтобы нарисовать что-то с OpenGL, и поэтому вам нужно вызвать ваши методы рисования в GLEventListener.display (GLAutoDrawable), контекст OpenGL гарантированно будет текущим в этом потоке во время вызова этого метода , Можно использовать JOGL без GLEventListener, но это более опасно, особенно если вы новичок, и это пустая трата времени, потому что она не дает никакой гибкости, тогда как она заставляет вас справляться с жизненным циклом вашей цели. Использование GLEventListener не мешает вам создавать свои собственные классы, вам просто нужно прямо или косвенно вызвать ваши методы рисования в display().

Если у вас есть какие-либо вопросы JOGL, обратитесь к ним по адресу the official forum. Вы также можете посмотреть the wiki. Вам нужно изучить OpenGL, чтобы использовать JOGL, вы можете прочитать Красную книгу OpenGL. Если вы очень новичок в программировании, я не думаю, что вам следует начинать с графики, вы должны начать с чего-то гораздо более простого, прежде всего, чтобы изучить основные принципы программирования на Java до изучения 2D и принципов 3D-графики ,

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

  • Нет связанных вопросов^_^