diff --git a/src/main/java/JumpGame.java b/src/main/java/JumpGame.java index d4c478a..2360302 100644 --- a/src/main/java/JumpGame.java +++ b/src/main/java/JumpGame.java @@ -47,9 +47,7 @@ } - // Modelの更新 - // // Space キーのインプット glfwSetKeyCallback(window, keyCallback = new GLFWKeyCallback() { @Override diff --git a/src/main/java/entities/modelExtentions/Flags.java b/src/main/java/entities/modelExtentions/Flags.java index e904fcb..7e0e0f0 100644 --- a/src/main/java/entities/modelExtentions/Flags.java +++ b/src/main/java/entities/modelExtentions/Flags.java @@ -54,7 +54,7 @@ if (count % 2 != 0) return false; if (values.get(count) <= x) { - count++; + if (count < values.size() - 1) count++; return true; } return false; @@ -65,7 +65,7 @@ public boolean isCloseFlag(int x) { if (count % 2 == 0) return false; if (values.get(count) <= x) { - count++; + if (count < values.size() - 1) count++; return true; } return false; diff --git a/src/main/java/models/JumpGameModel.java b/src/main/java/models/JumpGameModel.java index 7638270..c708473 100644 --- a/src/main/java/models/JumpGameModel.java +++ b/src/main/java/models/JumpGameModel.java @@ -93,7 +93,7 @@ } //--------------------------------------------------------------- - // + // 地面のフラグ更新 public void updateGroundFlag() { int x = position.getValue().getFirst().intValue(); diff --git a/src/main/java/views/TileMapRenderer.java b/src/main/java/views/TileMapRenderer.java index ea57f3a..4aacf70 100644 --- a/src/main/java/views/TileMapRenderer.java +++ b/src/main/java/views/TileMapRenderer.java @@ -50,7 +50,7 @@ // 初期タイル作成 private void initTiles(Flags flags) { boolean isOpen = false; - int space = 20; + int space = 10; // タイルマージン for (int i = 0; i < space; i++) { diff --git a/src/main/java/views/TileRenderer.java b/src/main/java/views/TileRenderer.java index ec61865..0c81428 100644 --- a/src/main/java/views/TileRenderer.java +++ b/src/main/java/views/TileRenderer.java @@ -4,15 +4,19 @@ import models.IModel; import models.JumpGameModel; +import java.lang.reflect.Parameter; + //--------------------------------------------------------------- // タイルの描画 public class TileRenderer implements IView { private Sprite sprite; + private Pair initPositionValue = new Pair<>(0d,0d); //--------------------------------------------------------------- //--------------------------------------------------------------- // public TileRenderer(String path, Pair initPosition) { + this.initPositionValue = initPosition; this.sprite = new Sprite(path); this.sprite.setScaleValue(1); this.sprite.setPositionValue(initPosition); @@ -20,6 +24,7 @@ //--------------------------------------------------------------- public TileRenderer(String path, Pair initPosition, double scale) { + this.initPositionValue = initPosition; this.sprite = new Sprite(path); this.sprite.setScaleValue(scale); this.sprite.setPositionValue(initPosition); @@ -45,7 +50,7 @@ @Override public void update(IModel model) { JumpGameModel jumpGameModel = (JumpGameModel) model; - subPositionByVelocity(jumpGameModel.getVelocity().getValue()); + subPositionByPosition(jumpGameModel.getPosition().getValue()); } //--------------------------------------------------------------- @@ -65,8 +70,8 @@ //--------------------------------------------------------------- //--------------------------------------------------------------- // - private void subPositionByVelocity(Pair velocity) { - Double x = this.sprite.getPositionValue().getFirst() - velocity.getFirst(); + private void subPositionByPosition(Pair position) { + Double x = this.initPositionValue.getFirst() - (position.getFirst() * 64); Double y = this.sprite.getPositionValue().getSecond(); this.sprite.setPositionValue(new Pair<>(x, y)); }