diff --git a/resources/JCasC.png b/resources/JCasC.png index 50121a4..24bc14c 100644 --- a/resources/JCasC.png +++ b/resources/JCasC.png Binary files differ diff --git a/src/main/java/GameEngine.java b/src/main/java/GameEngine.java index 0ecdb1f..1a3f5ab 100644 --- a/src/main/java/GameEngine.java +++ b/src/main/java/GameEngine.java @@ -1,3 +1,7 @@ +import models.JumpGameModel; +import org.lwjgl.glfw.GLFWKeyCallback; + +import static org.lwjgl.glfw.GLFW.*; import static org.lwjgl.opengl.GL11.*; //--------------------------------------------------------------- diff --git a/src/main/java/JumpGame.java b/src/main/java/JumpGame.java index 0751e12..bfbf201 100644 --- a/src/main/java/JumpGame.java +++ b/src/main/java/JumpGame.java @@ -26,7 +26,8 @@ // public void gravity(double y) { JumpGameModel jumpGameModel = (JumpGameModel) model; - jumpGameModel.updateGravity(y); + jumpGameModel.updateGravity(y); //重力の更新 + jumpGameModel.updateGroundFlag();//地面の判定切り替え } //--------------------------------------------------------------- @@ -48,22 +49,19 @@ view.display(); } - // Modelの更新 // Space キーのインプット glfwSetKeyCallback(window, keyCallback = new GLFWKeyCallback() { @Override public void invoke(long window, int key, int scancode, int action, int mods) { - if(key == GLFW_KEY_SPACE && action != GLFW_PRESS){ - JumpGameModel jumpGameModel = (JumpGameModel)model; + if (key == GLFW_KEY_SPACE && action != GLFW_PRESS) { + JumpGameModel jumpGameModel = (JumpGameModel) model; jumpGameModel.jump(); - System.out.println("jumping"); +// System.out.println("jumping"); } } }); - - // マイフレーム更新 gravity(-256); //重力 } diff --git a/src/main/java/Main.java b/src/main/java/Main.java index f51def6..b0f671e 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,3 +1,6 @@ +import javax.swing.*; +import java.awt.*; + //--------------------------------------------------------------- // 実行本体 public class Main extends GameEngine { diff --git a/src/main/java/entities/modelExtentions/Flags.java b/src/main/java/entities/modelExtentions/Flags.java index 7d68587..95f5d80 100644 --- a/src/main/java/entities/modelExtentions/Flags.java +++ b/src/main/java/entities/modelExtentions/Flags.java @@ -53,7 +53,8 @@ if (count % 2 != 0) return false; - if (values.get(count) <= x) { + double cx = (double) values.get(count) - 0.5; + if (cx <= x) { if (count < values.size() - 1) count++; return true; } @@ -64,7 +65,9 @@ // 偶数番目のフラグで穴を閉じるフラグを提示する public boolean isCloseFlag(double x) { if (count % 2 == 0) return false; - if (values.get(count) <= x) { + + double cx = (double) values.get(count) - 0.5; + if (cx <= x + 0.25) { if (count < values.size() - 1) count++; return true; } diff --git a/src/main/java/models/JumpGameModel.java b/src/main/java/models/JumpGameModel.java index c708473..6f35976 100644 --- a/src/main/java/models/JumpGameModel.java +++ b/src/main/java/models/JumpGameModel.java @@ -37,7 +37,6 @@ //--------------------------------------------------------------- private Flags flags; - private boolean tileType = true; //--------------------------------------------------------------- //--------------------------------------------------------------- @@ -88,24 +87,29 @@ public void updateGravity(double gravity) { this.time.gravity(gravity); this.force.gravity(gravity); - updateGroundFlag(); // System.out.println("swapWindow Gravity"); } //--------------------------------------------------------------- // 地面のフラグ更新 public void updateGroundFlag() { - int x = position.getValue().getFirst().intValue(); + double x = position.getValue().getFirst(); if (flags.isOpenFlag(x)) ground.openHole(); if (flags.isCloseFlag(x)) ground.closeHole(); System.out.print("x: " + x + "/"); - System.out.println("Ground: " + ground.getValue()); + System.out.println("Ground: " + ground.getValue() + "/"); +// System.out.print("Clear: " + clear.getClear() + "/"); +// System.out.println("GameOver: " + gameover.getGameover()); + } //--------------------------------------------------------------- // + + //--------------------------------------------------------------- + // private void init() { } diff --git a/src/main/java/views/PlayerRenderer.java b/src/main/java/views/PlayerRenderer.java index 1657a6e..f0a9772 100644 --- a/src/main/java/views/PlayerRenderer.java +++ b/src/main/java/views/PlayerRenderer.java @@ -27,7 +27,7 @@ JumpGameModel jumpGameModel = (JumpGameModel) model; double x = this.sprite.getPositionValue().getFirst(); - double y = 128 + jumpGameModel.getPosition().getValue().getSecond(); + double y = 112 + jumpGameModel.getPosition().getValue().getSecond(); this.sprite.setPositionValue(new Pair<>(x, y)); } diff --git a/src/main/java/views/TileRenderer.java b/src/main/java/views/TileRenderer.java index 60ed17b..52b9a2d 100644 --- a/src/main/java/views/TileRenderer.java +++ b/src/main/java/views/TileRenderer.java @@ -10,7 +10,7 @@ // タイルの描画 public class TileRenderer implements IView { private Sprite sprite; - private Pair initPositionValue = new Pair<>(0d,0d); + private Pair initPositionValue; //--------------------------------------------------------------- //---------------------------------------------------------------