04. オブジェクト - hannsi-to/LFJG-LiteFrameJavaGui GitHub Wiki
準備
オブジェクトを作る前にやらなければならないことがあります。LFJGContextの更新を行います。init関数内に
frame.updateLFJGLContext();
これらを追加してください。 Projectionは描画方法で変わります。2Dの場合ProjectionType.OrthographicProjectionを、3Dの場合ProjectionType.PerspectiveProjectionにしてください。resolutionは現在の画面サイズが代入されます。これで準備が整いました!
public class MainFrame implements LFJGFrame {
private Frame frame;
public static void main(String[] args) {
new MainFrame().setFrame();
}
@Override
public void init() {
}
@Override
public void drawFrame() {
}
@Override
public void stopFrame() {
}
@Override
public void setFrameSetting() {
}
public void setFrame() {
frame = new Frame(this, "MainFrame");
}
}
描画
描画方法を伝えます。今回は試しに四角形を描画します。 グローバル変数でGLRect型を作成します。init関数内で
glRect1 = new GLRect("Rect1");
を追加します。引数はオブジェクトの名前になります。次に
glRect1.rect(0,0,500,500, Color.of(255,0,255,255));
を追加します。これは引数に座標、色を渡します。rect以外にもrectWHやrectOutLine、rectWHOutLineなどがあります。 描画を行います。drawFrame関数内に
glRect1.draw();
を追加してください。これで描画されます。 最後にstopFrame関数内でクリーニアップ処理を行いましょう。
glRect1.cleanup();
これで一通りの操作は終わりです。 実際のコードと実行結果が以下になります。
public class MainFrame implements LFJGFrame {
GLRect glRect1;
private Frame frame;
public static void main(String[] args) {
new MainFrame().setFrame();
}
@Override
public void init() {
frame.updateLFJGLContext();
glRect1 = new GLRect("Rect1");
glRect1.rect(0, 0, 500, 500, Color.of(255, 0, 255, 255));
}
@Override
public void drawFrame() {
glRect1.draw();
}
@Override
public void stopFrame() {
glRect1.cleanup();
}
@Override
public void setFrameSetting() {
}
public void setFrame() {
frame = new Frame(this, "MainFrame");
}
}
以降にすべての描画できるオブジェクトを紹介します。
GLPoint
public class MainFrame implements LFJGFrame {
GLPoint glPoint;
private Frame frame;
public static void main(String[] args) {
new MainFrame().setFrame();
}
@Override
public void init() {
frame.updateLFJGLContext();
glPoint = new GLPoint("Point1");
glPoint.point(100, 100, 5f, Color.of(255, 0, 255, 255));
}
@Override
public void drawFrame() {
glPoint.draw();
}
@Override
public void stopFrame() {
glPoint.cleanup();
}
@Override
public void setFrameSetting() {
}
public void setFrame() {
frame = new Frame(this, "MainFrame");
}
}
GLLine
public class MainFrame implements LFJGFrame {
GLLine glLine;
private Frame frame;
public static void main(String[] args) {
new MainFrame().setFrame();
}
@Override
public void init() {
frame.updateLFJGLContext();
glLine = new GLLine("Line1");
glLine.line(100, 100, 700, 700, 1f, Color.of(255, 0, 255, 255));
}
@Override
public void drawFrame() {
glLine.draw();
}
@Override
public void stopFrame() {
glLine.cleanup();
}
@Override
public void setFrameSetting() {
}
public void setFrame() {
frame = new Frame(this, "MainFrame");
}
}
GLTriangle
public class MainFrame implements LFJGFrame {
GLTriangle glTriangle;
private Frame frame;
public static void main(String[] args) {
new MainFrame().setFrame();
}
@Override
public void init() {
frame.updateLFJGLContext();
glTriangle = new GLTriangle("Triangle1");
glTriangle.triangle(100, 100, 700, 100, 400, 700, Color.of(255, 0, 255, 255));
}
@Override
public void drawFrame() {
glTriangle.draw();
}
@Override
public void stopFrame() {
glTriangle.cleanup();
}
@Override
public void setFrameSetting() {
}
public void setFrame() {
frame = new Frame(this, "MainFrame");
}
}
GLRoundedRect
public class MainFrame implements LFJGFrame {
GLRoundedRect glRoundedRect;
private Frame frame;
public static void main(String[] args) {
new MainFrame().setFrame();
}
@Override
public void init() {
frame.updateLFJGLContext();
glRoundedRect = new GLRoundedRect("RoundedRect1");
glRoundedRect.roundedRect(100, 100, 700, 700, 30f, Color.of(255, 0, 255, 255));
}
@Override
public void drawFrame() {
glRoundedRect.draw();
}
@Override
public void stopFrame() {
glRoundedRect.cleanup();
}
@Override
public void setFrameSetting() {
}
public void setFrame() {
frame = new Frame(this, "MainFrame");
}
}
GLCircle
public class MainFrame implements LFJGFrame {
GLCircle glCircle;
private Frame frame;
public static void main(String[] args) {
new MainFrame().setFrame();
}
@Override
public void init() {
frame.updateLFJGLContext();
glCircle = new GLCircle("Circle1");
glCircle.circle(400, 400, 200, 360, Color.of(255, 0, 255, 255));
}
@Override
public void drawFrame() {
glCircle.draw();
}
@Override
public void stopFrame() {
glCircle.cleanup();
}
@Override
public void setFrameSetting() {
}
public void setFrame() {
frame = new Frame(this, "MainFrame");
}
}
GLPolygon
public class MainFrame implements LFJGFrame {
GLPolygon glPolygon;
private Frame frame;
public static void main(String[] args) {
new MainFrame().setFrame();
}
@Override
public void init() {
frame.updateLFJGLContext();
glPolygon = new GLPolygon("Polygon1");
glPolygon.put().vertex(new Vector2f(450, 200)).color(Color.of(255, 0, 255, 255)).end();
glPolygon.put().vertex(new Vector2f(700, 300)).color(Color.of(255, 0, 255, 255)).end();
glPolygon.put().vertex(new Vector2f(700, 600)).color(Color.of(255, 0, 255, 255)).end();
glPolygon.put().vertex(new Vector2f(450, 700)).color(Color.of(255, 0, 255, 255)).end();
glPolygon.put().vertex(new Vector2f(200, 600)).color(Color.of(255, 0, 255, 255)).end();
glPolygon.put().vertex(new Vector2f(200, 300)).color(Color.of(255, 0, 255, 255)).end();
glPolygon.setDrawType(DrawType.POLYGON);
glPolygon.rendering();
}
@Override
public void drawFrame() {
glPolygon.draw();
}
@Override
public void stopFrame() {
glPolygon.cleanup();
}
@Override
public void setFrameSetting() {
}
public void setFrame() {
frame = new Frame(this, "MainFrame");
}
}
GLText
public class MainFrame implements LFJGFrame {
GLText glText;
private Frame frame;
public static void main(String[] args) {
new MainFrame().setFrame();
}
@Override
public void init() {
frame.updateLFJGLContext();
LFJGContext.fontCache = FontCache.initFontCache()
.createCache(new Font("Font1", new ResourcesLocation("font/default.ttf")))
.loadFonts();
glText = new GLText("Text1");
glText.text("Font1", "Hello World!!", 450, 450, 64f, Color.of(255, 0, 255, 255), AlignType.LEFT_BOTTOM);
}
@Override
public void drawFrame() {
glText.draw();
}
@Override
public void stopFrame() {
glText.cleanup();
}
@Override
public void setFrameSetting() {
}
public void setFrame() {
frame = new Frame(this, "MainFrame");
}
}