diff --git a/GameEngine/src/main/java/gameEngine/entites/gameComponents/Mesh.java b/GameEngine/src/main/java/gameEngine/entites/gameComponents/Mesh.java index dd2d5f8..44e19c8 100644 --- a/GameEngine/src/main/java/gameEngine/entites/gameComponents/Mesh.java +++ b/GameEngine/src/main/java/gameEngine/entites/gameComponents/Mesh.java @@ -109,12 +109,10 @@ // テクスチャの描画 glEnable(GL_TEXTURE_2D); + glEnable(GL_BLEND); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glColor4f(1f, 1f, 1f, 1f); - // テクスチャを有効にして、イメージの座標とサイズを指定 - glEnable(GL_TEXTURE_2D); // テクスチャを有効化 - glColor4f(1f, 1f, 1f, 1f);// 色を白に設定 (テクスチャそのままの色で表示) - // 四角形を描画 (テクスチャ座標と画面座標を対応付け) glBegin(GL_QUADS); // 四角形を描画する glTexCoord2f(0, 0); glVertex3f(x, y, z); // 左上の頂点 (テクスチャ座標0,0と画面座標) diff --git a/GameEngine/src/main/java/gameEngine/entites/gameComponents/TextMesh.java b/GameEngine/src/main/java/gameEngine/entites/gameComponents/TextMesh.java index 8ffdd74..69784e5 100644 --- a/GameEngine/src/main/java/gameEngine/entites/gameComponents/TextMesh.java +++ b/GameEngine/src/main/java/gameEngine/entites/gameComponents/TextMesh.java @@ -2,9 +2,6 @@ import gameEngine.entites.Entity; import gameEngine.views.*; - -import javax.swing.*; - import java.util.Map; import static java.awt.Font.*; @@ -17,25 +14,35 @@ private int fontHeight; private Entity parent; // 親のオブジェクトを持つ public String text; + public int textSize; private int spriteWidth = 1; // サイズとは無関係 private int spriteHeight = 1; // サイズとは無関係 // コンストラクタ - public TextMesh(Entity parent, String text) { + public TextMesh(Entity parent, String text, int textSize) { this.parent = parent; this.text = text; - Font font = new Font(new java.awt.Font(SANS_SERIF, PLAIN, 64),true); + Font font = new Font(new java.awt.Font(SANS_SERIF, PLAIN, textSize),true); fontTexture = font.getTexture(); fontGlyphs = font.getGlyphs(); fontHeight = font.getFontHeight(); } + public TextMesh(TextMesh original, Entity newParent) { + this.fontTexture = original.fontTexture; + this.fontGlyphs = original.fontGlyphs; + this.fontHeight = original.fontHeight; + this.text = original.text; + this.textSize = original.textSize; + this.parent = newParent; // 新しい親オブジェクトに設定 + } + @Override public GameComponent copy() { - return new TextMesh(this.parent, this.text); + return this; } @Override diff --git a/GameEngine/src/main/java/gameEngine/scenes/Scene.java b/GameEngine/src/main/java/gameEngine/scenes/Scene.java index dc414bd..a6f1915 100644 --- a/GameEngine/src/main/java/gameEngine/scenes/Scene.java +++ b/GameEngine/src/main/java/gameEngine/scenes/Scene.java @@ -56,8 +56,8 @@ String newId = Integer.toString(entitiesLength); GameObject newGameObject = new GameObject(newId); addEntity(newId, newGameObject); - //newGameObject.addComponent(new Mesh(newGameObject, Mesh.MeshType.SPRITE, "GameEngine/resources/test.png")); - newGameObject.addComponent(new TextMesh(newGameObject, "Hello World")); + newGameObject.addComponent(new Mesh(newGameObject, Mesh.MeshType.SPRITE, "GameEngine/resources/0.png")); + newGameObject.addComponent(new TextMesh(newGameObject, "Hello World",32)); newGameObject.setName("NewEntity" + newId); }); } @@ -98,6 +98,9 @@ if (gameComponent instanceof Mesh) { newGameObject.addComponent(new Mesh((Mesh)gameComponent.copy(), newGameObject)); } + if (gameComponent instanceof TextMesh) { + newGameObject.addComponent(new TextMesh((TextMesh)gameComponent.copy(), newGameObject)); + } if (gameComponent instanceof ColorController) { newGameObject.addComponent(new ColorController()); }