From de82812ee8a201c47e7e54a4ba9dcb259a5d9576 Mon Sep 17 00:00:00 2001 From: Victor Date: Sun, 16 Mar 2014 15:57:21 +0200 Subject: [PATCH] Use Util instead Random --- src/com/annimon/turrets/GameCanvas.java | 6 +++++- src/com/annimon/turrets/Terrain.java | 7 +++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/com/annimon/turrets/GameCanvas.java b/src/com/annimon/turrets/GameCanvas.java index b9d3eab..c2d5664 100644 --- a/src/com/annimon/turrets/GameCanvas.java +++ b/src/com/annimon/turrets/GameCanvas.java @@ -102,8 +102,12 @@ public class GameCanvas extends DoubleBufferedCanvas implements Runnable, Networ } private void startGame(long seed) { + Util.setRandomSeed(seed); + // Reinit background with same seed on server and client. + initBackground(); + terrain = new Terrain(Constants.WIDTH); - terrain.generate(seed); + terrain.generate(); serverTurret = new Turret(Turret.SERVER, terrain.getFirstBlockHeight(), terrain); serverTurret.setTurretListener(serverTurretListener); diff --git a/src/com/annimon/turrets/Terrain.java b/src/com/annimon/turrets/Terrain.java index b44a599..a0babbb 100644 --- a/src/com/annimon/turrets/Terrain.java +++ b/src/com/annimon/turrets/Terrain.java @@ -65,15 +65,14 @@ public class Terrain implements Constants { return blockHeights[blocksCount - 1]; } - public void generate(long seed) { - final Random rnd = new Random(seed); + public void generate() { final int maxHeight = HEIGHT / 2; final int stepHeight = maxHeight / 75 * blockSize; int maxBlockHeight = 0; - blockHeights[0] = rnd.nextInt(maxHeight); + blockHeights[0] = Util.rand(maxHeight); for (int i = 1; i < blocksCount; i++) { - int value = blockHeights[i - 1] + rnd.nextInt(2 * stepHeight + 1) - stepHeight; + int value = blockHeights[i - 1] + Util.rand(-stepHeight, stepHeight); if (value > maxHeight) value = maxHeight; else if (value < 0) value = 0; blockHeights[i] = value;