diff --git a/GameEngine/pom.xml b/GameEngine/pom.xml
index b6a4aff..4d99d29 100644
--- a/GameEngine/pom.xml
+++ b/GameEngine/pom.xml
@@ -89,6 +89,12 @@
joml
${joml.version}
+
+ org.jetbrains
+ annotations
+ RELEASE
+ compile
+
\ No newline at end of file
diff --git a/GameEngine/src/main/java/gameEngine/entites/gameComponents/ColorController.java b/GameEngine/src/main/java/gameEngine/entites/gameComponents/ColorController.java
index 81bea9d..73d9ad0 100644
--- a/GameEngine/src/main/java/gameEngine/entites/gameComponents/ColorController.java
+++ b/GameEngine/src/main/java/gameEngine/entites/gameComponents/ColorController.java
@@ -1,67 +1,47 @@
package gameEngine.entites.gameComponents;
import gameEngine.input.*;
+import gameEngine.views.Color;
import static org.lwjgl.glfw.GLFW.*;
import static org.lwjgl.opengl.GL11.*;
public class ColorController extends GameComponent {
- private float red;
- private float green;
- private float blue;
+ private Color color = new Color(0,0,0);
public void init() {
- System.out.println("in Component");
- this.setColor(0.0F, 0.0F, 0.0F);
+ color = Color.BLACK;
}
public void update() {
if (Input.GetKey(GLFW_KEY_R)) {
- this.setColor(1.0F, 0.0F, 0.0F);
+ color = Color.RED;
System.out.println("R");
}
if (Input.GetKeyUp(GLFW_KEY_G)) {
- this.setColor(0.0F, 1.0F, 0.0F);
+ color = Color.GREEN;
System.out.println("G");
}
if (Input.GetKeyDown(GLFW_KEY_B)) {
- this.setColor(0.0F, 0.0F, 1.0F);
+ color = Color.BLUE;
System.out.println("B");
}
if (Input.GetMouseButton(0)) {
- setColor(1.0f, 0.0f, 0.0f);
- System.out.println("Red");
+ color = Color.CYAN;
+ System.out.println("CYAN");
}
if (Input.GetMouseButtonUp(1)) {
- setColor(0.0f, 0.0f, 1.0f);
- System.out.println("Blue");
+ color = Color.YELLOW;
+ System.out.println("YELLOW");
}
if (Input.GetMouseButtonDown(2)) {
- setColor(0.0f, 1.0f, 0.0f);
- System.out.println("Green");
+ color = Color.MAGENTA;
+ System.out.println("MAGENTA");
}
- glClearColor(this.getRed(), this.getGreen(), this.getBlue(), 0.0F);
- }
-
- public float getRed() {
- return this.red;
- }
-
- public float getGreen() {
- return this.green;
- }
-
- public float getBlue() {
- return this.blue;
- }
-
- public void setColor(float r, float g, float b) {
- this.red = r;
- this.green = g;
- this.blue = b;
+ glClearColor(color.r, color.g, color.b, 0.0F);
}
diff --git a/GameEngine/src/main/java/gameEngine/entites/gameComponents/Mesh.java b/GameEngine/src/main/java/gameEngine/entites/gameComponents/Mesh.java
index 1f7c955..ea0bf8e 100644
--- a/GameEngine/src/main/java/gameEngine/entites/gameComponents/Mesh.java
+++ b/GameEngine/src/main/java/gameEngine/entites/gameComponents/Mesh.java
@@ -58,14 +58,24 @@
// テクスチャをバインド (テクスチャIDをOpenGLに設定)
glBindTexture(GL_TEXTURE_2D, texture.getId());
+ // 親のGameObjectの座標と回転を取得
+ float x = parent.transform.position.x;
+ float y = parent.transform.position.y;
+ float rotationZ = parent.transform.rotation.z;
+
+ // 回転の適用
+ glTranslatef(x + spriteWidth / 2.0f, y + spriteHeight / 2.0f, 0); // 回転中心をスプライトの中心に
+ glRotatef(rotationZ, 0, 0, 1); // Z軸周りに回転
+ glTranslatef(-(x + spriteWidth / 2.0f), -(y + spriteHeight / 2.0f), 0); // 元の位置に戻す
+
+ // テクスチャの描画
+ glEnable(GL_TEXTURE_2D);
+ glColor4f(1f, 1f, 1f, 1f);
+
// テクスチャを有効にして、イメージの座標とサイズを指定
glEnable(GL_TEXTURE_2D); // テクスチャを有効化
glColor4f(1f, 1f, 1f, 1f);// 色を白に設定 (テクスチャそのままの色で表示)
- // 親のGameObjectの座標を取得
- float x = parent.transform.position.x;
- float y = parent.transform.position.y;
-
// 四角形を描画 (テクスチャ座標と画面座標を対応付け)
glBegin(GL_QUADS); // 四角形を描画する
glTexCoord2f(0, 0); glVertex2f(x, y); // 左上の頂点 (テクスチャ座標0,0と画面座標)
diff --git a/GameEngine/src/main/java/gameEngine/scenes/EditorScene.java b/GameEngine/src/main/java/gameEngine/scenes/EditorScene.java
index 4a0aaa9..259d813 100644
--- a/GameEngine/src/main/java/gameEngine/scenes/EditorScene.java
+++ b/GameEngine/src/main/java/gameEngine/scenes/EditorScene.java
@@ -1,6 +1,7 @@
package gameEngine.scenes;
import gameEngine.input.*;
+import gameEngine.views.Color;
import gameEngine.views.Window;
import java.awt.event.KeyEvent;
@@ -11,13 +12,9 @@
private boolean changingScene = false;
private float timeToChangeScene = 2.0f;
- public float r,g,b,a;
+ private final Color editorBackColor = new Color(1,1,1,0);
public EditorScene(){
System.out.println("Active Editor scene");
- r = 1;
- g = 1;
- b = 1;
- a = 0;
}
@Override
@@ -30,14 +27,14 @@
if(changingScene && timeToChangeScene > 0){
timeToChangeScene -= dt;
- r -= dt * 5.0f;
- g -= dt * 5.0f;
- b -= dt * 5.0f;
+ editorBackColor.r -= dt * 5.0f;
+ editorBackColor.g -= dt * 5.0f;
+ editorBackColor.b -= dt * 5.0f;
}
else if(changingScene){
Window.changeScene(1);
}
- glClearColor(r, g, b, a);
+ glClearColor(editorBackColor.r, editorBackColor.g, editorBackColor.b, editorBackColor.a);
}
}
diff --git a/GameEngine/src/main/java/gameEngine/scenes/GameScene.java b/GameEngine/src/main/java/gameEngine/scenes/GameScene.java
index 21d40b6..fd2bba2 100644
--- a/GameEngine/src/main/java/gameEngine/scenes/GameScene.java
+++ b/GameEngine/src/main/java/gameEngine/scenes/GameScene.java
@@ -39,6 +39,15 @@
float x = gameObjects.get("sprite").transform.position.x;
gameObjects.get("sprite").transform.setPosition(x + 1, gameObjects.get("sprite").transform.position.y, 0);
}
+
+ if (Input.GetKey(GLFW_KEY_LEFT)) {
+ float rotation = gameObjects.get("sprite").transform.rotation.z;
+ gameObjects.get("sprite").transform.setRotation(0, 0, rotation - 1); // 左回転
+ }
+ if (Input.GetKey(GLFW_KEY_RIGHT)) {
+ float rotation = gameObjects.get("sprite").transform.rotation.z;
+ gameObjects.get("sprite").transform.setRotation(0, 0, rotation + 1); // 右回転
+ }
}
}
diff --git a/GameEngine/src/main/java/gameEngine/views/Color.java b/GameEngine/src/main/java/gameEngine/views/Color.java
new file mode 100644
index 0000000..e3c9734
--- /dev/null
+++ b/GameEngine/src/main/java/gameEngine/views/Color.java
@@ -0,0 +1,26 @@
+package gameEngine.views;
+
+public class Color {
+ public float r,g,b,a;
+
+ public Color(float r, float g, float b) {
+ this.r = r;
+ this.g = g;
+ this.b = b;
+ this.a = 1.0f;
+ }
+ public Color(float r, float g, float b, float a) {
+ this.r = r;
+ this.g = g;
+ this.b = b;
+ this.a = a;
+ }
+ public static final Color RED = new Color(1, 0, 0);
+ public static final Color GREEN = new Color(0, 1, 0);
+ public static final Color BLUE = new Color(0, 0, 1);
+ public static final Color WHITE = new Color(0, 0, 0);
+ public static final Color BLACK = new Color(1, 1, 1);
+ public static final Color YELLOW = new Color(1, 1, 0);
+ public static final Color MAGENTA = new Color(1, 0, 1);
+ public static final Color CYAN = new Color(0, 1, 1);
+}