From 2d94431f674b2b604e03f32c9de4cf91c7fa715b Mon Sep 17 00:00:00 2001 From: fred-boy <fred-boy@protonmail.com> Date: Fri, 6 Apr 2018 23:42:44 +0700 Subject: [PATCH] Add landscape --- .../cavecraft/game/GameRenderer.java | 1 + .../deadsoftware/cavecraft/game/WorldGen.java | 25 ++++++++++++++++--- .../cavecraft/desktop/DesktopLauncher.java | 2 +- 3 files changed, 24 insertions(+), 4 deletions(-) diff --git a/core/src/ru/deadsoftware/cavecraft/game/GameRenderer.java b/core/src/ru/deadsoftware/cavecraft/game/GameRenderer.java index 42bd07e..3c6d7b3 100644 --- a/core/src/ru/deadsoftware/cavecraft/game/GameRenderer.java +++ b/core/src/ru/deadsoftware/cavecraft/game/GameRenderer.java @@ -105,6 +105,7 @@ public class GameRenderer { drawPlayer(gameProc.player); drawGUI(); spriteBatch.end(); + shapeRenderer.begin(ShapeRenderer.ShapeType.Line); shapeRenderer.setColor(Color.ORANGE); drawRect(gameProc.cursorX*16-camera.position.x, diff --git a/core/src/ru/deadsoftware/cavecraft/game/WorldGen.java b/core/src/ru/deadsoftware/cavecraft/game/WorldGen.java index 96aedf3..84f0ae1 100644 --- a/core/src/ru/deadsoftware/cavecraft/game/WorldGen.java +++ b/core/src/ru/deadsoftware/cavecraft/game/WorldGen.java @@ -1,18 +1,37 @@ package ru.deadsoftware.cavecraft.game; +import com.badlogic.gdx.math.RandomXS128; +import com.badlogic.gdx.utils.TimeUtils; + public class WorldGen { private static int[][] foreMap, backMap; + private static int[] noise; + + static int[] genNoise(int width, int mid, int min, int max) { + RandomXS128 rand = new RandomXS128(TimeUtils.millis()); + int[] res = new int[width]; + int t; + res[0] = mid; + for (int i=1; i<width; i++) { + t = rand.nextInt(3)-1; + res[i] = res[i-1] + t; + if (res[i]<min) res[i] = min; + if (res[i]>max) res[i] = max; + } + return res; + } static void genWorld(int width, int height) { foreMap = new int[width][height]; backMap = new int[width][height]; + noise = genNoise(width, height/2, 1, height); for (int x=0; x<width; x++) { - for (int y=height-8; y<height; y++) { - if (y==height-8) { + for (int y=height-noise[x]; y<height; y++) { + if (y==height-noise[x]) { foreMap[x][y] = 3; backMap[x][y] = 3; - } else if (y<height-4) { + } else if (y<height-noise[x]+4) { foreMap[x][y] = 2; backMap[x][y] = 2; } else { diff --git a/desktop/src/ru/deadsoftware/cavecraft/desktop/DesktopLauncher.java b/desktop/src/ru/deadsoftware/cavecraft/desktop/DesktopLauncher.java index 2f0d7b0..e640ebb 100644 --- a/desktop/src/ru/deadsoftware/cavecraft/desktop/DesktopLauncher.java +++ b/desktop/src/ru/deadsoftware/cavecraft/desktop/DesktopLauncher.java @@ -10,7 +10,7 @@ public class DesktopLauncher { config.foregroundFPS = 60; config.title = "CaveCraft"; config.width = 960; - config.height = 720; + config.height = 540; new LwjglApplication(new CaveGame(), config); } } -- 2.29.2