タイル描画できるようになりました.
1 parent 9e9a32f commit 1249ae8802d1e82df461a6a076a7236b41644443
k-fujii authored on 16 Nov 2021
Showing 6 changed files
View
13
src/main/java/JumpGame.java
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);
// 初期化
public void init() {
 
// model
models.add(new PlayerModel(ground));
models.add(new GroundModel());
models.add(new PlayerModel(models.get(ModelType.GroundModel)));
 
// 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));
}
 
//---------------------------------------------------------------
// 更新処理
// Space キーのインプット
//
// マイフレーム更新
 
gravity(0.01); //重力
// gravity(0.01); //重力
}
 
//---------------------------------------------------------------
// デストラクタのような処理
View
30
src/main/java/models/GroundModel.java 0 → 100644
package models;
 
import entities.Ground;
 
//---------------------------------------------------------------
//
public class GroundModel implements IModel {
//---------------------------------------------------------------
private Ground ground;
 
//---------------------------------------------------------------
//---------------------------------------------------------------
public GroundModel() {
ground = new Ground();
}
 
//---------------------------------------------------------------
//---------------------------------------------------------------
// getter
public Ground getGround() {
return ground;
}
 
//---------------------------------------------------------------
//---------------------------------------------------------------
//
 
//---------------------------------------------------------------
}
View
4
src/main/java/models/ModelType.java
//---------------------------------------------------------------
// モデルのタイプ識別
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;
 
//---------------------------------------------------------------
//---------------------------------------------------------------
View
12
src/main/java/models/PlayerModel.java
//---------------------------------------------------------------
private double jumpPower = 32;
 
//---------------------------------------------------------------
public PlayerModel(Ground ground) {
position = new Position(new Pair<>(640d, 480d), ground);
onground = new Onground(ground, position);
//
public PlayerModel(IModel model) {
GroundModel groundModel = (GroundModel)model;
 
position = new Position(new Pair<>(640d, 480d), groundModel.getGround());
onground = new Onground(groundModel.getGround(), position);
velocity = new Velocity(position, onground);
acceleration = new Acceleration(velocity, onground);
force = new Force(acceleration);
mass = new Mass(acceleration);
View
13
src/main/java/views/PlayerRenderer.java
//---------------------------------------------------------------
//---------------------------------------------------------------
// 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());
}
 
//---------------------------------------------------------------
// テクスチャの開放
View
32
src/main/java/views/TileRenderer.java 0 → 100644
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();
}
//---------------------------------------------------------------
}