From 952991862f0bf068002b38f30a6558822fd964c7 Mon Sep 17 00:00:00 2001 From: Solargale Date: Wed, 1 Apr 2020 16:18:19 -0600 Subject: [PATCH] Added the camera object to the player class and added the teleport method. Also renamed Blocks.java to BlockMaterials.java. Also added Player object to the Main class --- core/src/com/mygdx/game/Character/Player.java | 10 +++++++++- .../Dimension/{Blocks.java => BlockMaterials.java} | 4 ++-- core/src/com/mygdx/game/Dimension/Chunks.java | 2 +- core/src/com/mygdx/game/Dimension/Superchunks.java | 11 ++++++----- core/src/com/mygdx/game/Dimension/WorldRenderer.java | 2 +- core/src/com/mygdx/game/Main.java | 7 +++++-- 6 files changed, 24 insertions(+), 12 deletions(-) rename core/src/com/mygdx/game/Dimension/{Blocks.java => BlockMaterials.java} (92%) diff --git a/core/src/com/mygdx/game/Character/Player.java b/core/src/com/mygdx/game/Character/Player.java index 1bfb63f..f2d04db 100644 --- a/core/src/com/mygdx/game/Character/Player.java +++ b/core/src/com/mygdx/game/Character/Player.java @@ -12,12 +12,14 @@ public class Player implements Restrictions { private String spriteName; private TextureAtlas textureAtlas; private Animation animation; + private OrthographicCamera cam; public Player(int x, int y, OrthographicCamera cam) { + this.cam = cam; this.x = x*TILE_SIZE; this.y = y*TILE_SIZE; - cam.translate(this.x,this.y); + this.cam.translate(this.x,this.y); this.spriteName = "man"; this.textureAtlas = new TextureAtlas("core/assets/" + spriteName + ".atlas"); @@ -26,6 +28,12 @@ public class Player implements Restrictions { this.animation = new Animation<>(frameDuration, keyFrames); } + public static void teleport(Player player, int x, int y){ + player.x = x*TILE_SIZE; + player.y = y*TILE_SIZE; + player.cam.translate(x,y); + } + public void render(Batch batch){ float elapsedTime = 1f; batch.draw(getAnimation().getKeyFrame(elapsedTime, true), getX(), getY(), TILE_SIZE, TILE_SIZE); diff --git a/core/src/com/mygdx/game/Dimension/Blocks.java b/core/src/com/mygdx/game/Dimension/BlockMaterials.java similarity index 92% rename from core/src/com/mygdx/game/Dimension/Blocks.java rename to core/src/com/mygdx/game/Dimension/BlockMaterials.java index 851c806..ca3eb94 100644 --- a/core/src/com/mygdx/game/Dimension/Blocks.java +++ b/core/src/com/mygdx/game/Dimension/BlockMaterials.java @@ -4,12 +4,12 @@ import com.badlogic.gdx.graphics.Texture; import java.util.HashMap; -public class Blocks { +public class BlockMaterials { public static HashMap materials = new HashMap<>(); public static HashMap textures = new HashMap<>(); //Private so the singleton can't be instantiated - private Blocks() {} + private BlockMaterials() {} public Texture getTexture(String material) { return textures.get(material); diff --git a/core/src/com/mygdx/game/Dimension/Chunks.java b/core/src/com/mygdx/game/Dimension/Chunks.java index 030d868..08e7de0 100644 --- a/core/src/com/mygdx/game/Dimension/Chunks.java +++ b/core/src/com/mygdx/game/Dimension/Chunks.java @@ -18,7 +18,7 @@ public class Chunks { //Going from start of selected chunk to end of selected chunk in x and y for (int i = startX; i != endX; i++){ for (int j = startY; j != endY; j++) { - blocks.put(new Pair<>(i, j), Blocks.materials.get("grass")); + blocks.put(new Pair<>(i, j), BlockMaterials.materials.get("grass")); } } } diff --git a/core/src/com/mygdx/game/Dimension/Superchunks.java b/core/src/com/mygdx/game/Dimension/Superchunks.java index c7be4fc..33ce86f 100644 --- a/core/src/com/mygdx/game/Dimension/Superchunks.java +++ b/core/src/com/mygdx/game/Dimension/Superchunks.java @@ -1,10 +1,11 @@ package com.mygdx.game.Dimension; +import com.mygdx.game.Character.Player; import net.dermetfan.utils.Pair; import java.util.HashMap; -import static com.mygdx.game.Restrictions.RENDER_DISTANCE; +import static com.mygdx.game.Restrictions.CHUNK_SIZE; import static com.mygdx.game.Restrictions.SUPER_CHUNK_SIZE; public class Superchunks { @@ -21,16 +22,16 @@ public class Superchunks { for (int i = startX; i != endX; i++){ for (int j = startY; j != endY; j++) { Chunks chunks = new Chunks(); - Blocks.create(); + BlockMaterials.create(); chunks.generateChunk(i, j); overworld.put(new Pair<>(i, j), chunks); } } } - public static void generateWithPlayer(){ - for (int i = -RENDER_DISTANCE; i < RENDER_DISTANCE; i++) { - for (int j = -RENDER_DISTANCE; j < RENDER_DISTANCE; j++) { + public static void generateWithPlayer(Player player){ + for (int i = -1+player.getX()/CHUNK_SIZE*SUPER_CHUNK_SIZE; i < 1+player.getX()/CHUNK_SIZE*SUPER_CHUNK_SIZE; i++) { + for (int j = -1+player.getY()/CHUNK_SIZE*SUPER_CHUNK_SIZE; j < 1+player.getY()/CHUNK_SIZE*SUPER_CHUNK_SIZE; j++) { generateSuperchunk(i,j); } } diff --git a/core/src/com/mygdx/game/Dimension/WorldRenderer.java b/core/src/com/mygdx/game/Dimension/WorldRenderer.java index 878cf81..49853d6 100644 --- a/core/src/com/mygdx/game/Dimension/WorldRenderer.java +++ b/core/src/com/mygdx/game/Dimension/WorldRenderer.java @@ -37,7 +37,7 @@ public class WorldRenderer implements Restrictions { int drawingLocationX = chunkpair.getKey() * TILE_SIZE; int drawingLocationY = chunkpair.getValue()* TILE_SIZE; - batch.draw(Blocks.textures.get(name),drawingLocationX ,drawingLocationY); + batch.draw(BlockMaterials.textures.get(name),drawingLocationX ,drawingLocationY); } } } diff --git a/core/src/com/mygdx/game/Main.java b/core/src/com/mygdx/game/Main.java index e7d2a40..f302180 100644 --- a/core/src/com/mygdx/game/Main.java +++ b/core/src/com/mygdx/game/Main.java @@ -27,6 +27,7 @@ public class Main extends ApplicationAdapter { private Label label; float physicsUpdateSpeed = 1/60f; //how often you want to do a physics-update, in this case every 1/60th of a sec float timeSinceLastUpdate = 0f; //accumulator + private Player player; @Override @@ -48,12 +49,13 @@ public class Main extends ApplicationAdapter { //Starting location of the player - Player player = new Player(0,0, cam); + player = new Player(0,0, cam); cam.translate((float) TILE_SIZE / 2, (float) TILE_SIZE / 2); cam.zoom = 25f; - Superchunks.generateWithPlayer(); + Superchunks.generateWithPlayer(player); + mouse = new Mouse(player); worldRenderer = new WorldRenderer(player, mouse,cam); @@ -67,6 +69,7 @@ public class Main extends ApplicationAdapter { fixedStep(); + batch.begin(); worldRenderer.render(batch); gui.render(batch);