diff --git a/resources/tile.png b/resources/tile.png new file mode 100644 index 0000000..ef8f80c --- /dev/null +++ b/resources/tile.png Binary files differ diff --git a/src/main/java/JumpGame.java b/src/main/java/JumpGame.java index caa33a5..608970f 100644 --- a/src/main/java/JumpGame.java +++ b/src/main/java/JumpGame.java @@ -1,25 +1,19 @@ import entities.*; +import models.GroundModel; import models.IModel; import models.ModelType; import models.PlayerModel; import views.IView; import views.PlayerRenderer; +import views.TileRenderer; import java.util.ArrayList; public class JumpGame { //--------------------------------------------------------------- // private Time time = new Time(); - private Ground ground = new Ground(); -// private Position position = new Position(ground); // private Gameover gameover = new Gameover(position); -// private Onground onground = new Onground(ground, position); -// private Velocity velocity = new Velocity(position, onground); // private Clear clear = new Clear(position); -// private Move move = new Move(velocity); -// private Acceleration acceleration = new Acceleration(velocity, onground); -// private Force force = new Force(acceleration); -// private Mass mass = new Mass(acceleration); //--------------------------------------------------------------- // new @@ -42,11 +36,14 @@ public void init() { // model - models.add(new PlayerModel(ground)); + models.add(new GroundModel()); + + GroundModel groundModel = (GroundModel) models.get(ModelType.GroundModel); + models.add(new PlayerModel(groundModel.getGround())); // view - views.add(new PlayerRenderer("resources/chicken.png", 0.5)); - + views.add(new TileRenderer("resources/tile.png", 1)); + views.add(new PlayerRenderer("resources/chicken.png", 1)); } //--------------------------------------------------------------- @@ -64,7 +61,7 @@ // // マイフレーム更新 - gravity(0.01); //重力 +// gravity(0.01); //重力 } //--------------------------------------------------------------- @@ -74,6 +71,5 @@ } //--------------------------------------------------------------- - //--------------------------------------------------------------- } \ No newline at end of file diff --git a/src/main/java/models/GroundModel.java b/src/main/java/models/GroundModel.java new file mode 100644 index 0000000..7e9f384 --- /dev/null +++ b/src/main/java/models/GroundModel.java @@ -0,0 +1,29 @@ +package models; + +import entities.Ground; + +//--------------------------------------------------------------- +// +public class GroundModel implements IModel { + //--------------------------------------------------------------- + private Ground ground; + + //--------------------------------------------------------------- + //--------------------------------------------------------------- + public GroundModel() { + ground = new Ground(); + } + + //--------------------------------------------------------------- + //--------------------------------------------------------------- + // getter + public Ground getGround() { + return ground; + } + + //--------------------------------------------------------------- + //--------------------------------------------------------------- + // + + //--------------------------------------------------------------- +} diff --git a/src/main/java/models/ModelType.java b/src/main/java/models/ModelType.java index 604df21..7ffa695 100644 --- a/src/main/java/models/ModelType.java +++ b/src/main/java/models/ModelType.java @@ -4,8 +4,8 @@ // モデルのタイプ識別 public class ModelType { - public static final int PlayerModel = 0; - public static final int GroundModel = 1; + public static final int GroundModel = 0; + public static final int PlayerModel = 1; public static final int GameModel = 2; //--------------------------------------------------------------- diff --git a/src/main/java/models/PlayerModel.java b/src/main/java/models/PlayerModel.java index ecc41f8..e992429 100644 --- a/src/main/java/models/PlayerModel.java +++ b/src/main/java/models/PlayerModel.java @@ -18,7 +18,9 @@ private double jumpPower = 32; //--------------------------------------------------------------- + // public PlayerModel(Ground ground) { + position = new Position(new Pair<>(640d, 480d), ground); onground = new Onground(ground, position); velocity = new Velocity(position, onground); diff --git a/src/main/java/views/PlayerRenderer.java b/src/main/java/views/PlayerRenderer.java index 559f06f..30329c8 100644 --- a/src/main/java/views/PlayerRenderer.java +++ b/src/main/java/views/PlayerRenderer.java @@ -20,10 +20,14 @@ //--------------------------------------------------------------- // PlayerModelから座標を取得して描画する public void display(IModel model) { - PlayerModel playerModel = (PlayerModel)model; + + // Modelがキャスト可能か判定 + if (model instanceof PlayerModel) { + PlayerModel playerModel = (PlayerModel) model; + sprite.setPositionValue(playerModel.getPosition().getValue()); + } sprite.draw(); - sprite.setPositionValue(playerModel.getPosition().getValue()); } //--------------------------------------------------------------- diff --git a/src/main/java/views/TileMapRenderer.java b/src/main/java/views/TileMapRenderer.java new file mode 100644 index 0000000..478c182 --- /dev/null +++ b/src/main/java/views/TileMapRenderer.java @@ -0,0 +1,4 @@ +package views; + +public class TileMapRenderer { +} diff --git a/src/main/java/views/TileRenderer.java b/src/main/java/views/TileRenderer.java new file mode 100644 index 0000000..90bfe8f --- /dev/null +++ b/src/main/java/views/TileRenderer.java @@ -0,0 +1,31 @@ +package views; + +import entities.Sprite; +import models.IModel; + +//--------------------------------------------------------------- +// タイルの描画 +public class TileRenderer implements IView { + private Sprite sprite; + + //--------------------------------------------------------------- + //--------------------------------------------------------------- + public TileRenderer(String path, double scale){ + this.sprite = new Sprite(path); + this.sprite.setScaleValue(scale); + } + + //--------------------------------------------------------------- + //--------------------------------------------------------------- + // + public void display(IModel model){ + sprite.draw(); + } + + //--------------------------------------------------------------- + // テクスチャの開放 + public void delete(){ + sprite.delete(); + } + //--------------------------------------------------------------- +}