X-Git-Url: https://deadsoftware.ru/gitweb?a=blobdiff_plain;f=core%2Fsrc%2Fru%2Fdeadsoftware%2Fcavecraft%2Fgame%2FGameWorld.java;h=daa00c004af21ce8356aeec57d0f276d18865376;hb=e0aa1520178df544807f3e803b4b6169346b07fb;hp=c4655bf157c732368ec685c085af2be42ba9f819;hpb=103459785743a8485af69863d65ad1b1a2410ab0;p=cavedroid.git diff --git a/core/src/ru/deadsoftware/cavecraft/game/GameWorld.java b/core/src/ru/deadsoftware/cavecraft/game/GameWorld.java index c4655bf..daa00c0 100644 --- a/core/src/ru/deadsoftware/cavecraft/game/GameWorld.java +++ b/core/src/ru/deadsoftware/cavecraft/game/GameWorld.java @@ -2,7 +2,6 @@ package ru.deadsoftware.cavecraft.game; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.math.Vector2; -import com.badlogic.gdx.utils.ArrayMap; import ru.deadsoftware.cavecraft.Items; public class GameWorld { @@ -30,17 +29,29 @@ public class GameWorld { } public int getForeMap(int x, int y) { - int ret = 0; + int map = 0; try { - ret = foreMap[x][y]; + if (x<0) { + x = x % (getWidth()); + x = getWidth()- Math.abs(x); + } else if (x>0) { + x = x % (getWidth()); + } + map = foreMap[x][y]; } catch (ArrayIndexOutOfBoundsException e) { Gdx.app.error("GameWorld",e.toString()); } - return ret; + return map; } public void setForeMap(int x, int y, int value) { try { + if (x<0) { + x = x % (getWidth()); + x = getWidth()- Math.abs(x); + } else if (x>0) { + x = x % (getWidth()); + } foreMap[x][y] = value; } catch (ArrayIndexOutOfBoundsException e) { Gdx.app.error("GameWorld", e.toString()); @@ -48,17 +59,29 @@ public class GameWorld { } public int getBackMap(int x, int y) { - int ret = 0; + int map = 0; try { - ret = backMap[x][y]; + if (x<0) { + x = x % (getWidth()); + x = getWidth()- Math.abs(x); + } else if (x>0) { + x = x % (getWidth()); + } + map = backMap[x][y]; } catch (ArrayIndexOutOfBoundsException e) { Gdx.app.error("GameWorld",e.toString()); } - return ret; + return map; } public void setBackMap(int x, int y, int value) { try { + if (x<0) { + x = x % (getWidth()); + x = getWidth()- Math.abs(x); + } else if (x>0) { + x = x % (getWidth()); + } backMap[x][y] = value; } catch (ArrayIndexOutOfBoundsException e) { Gdx.app.error("GameWorld", e.toString()); @@ -79,19 +102,6 @@ public class GameWorld { public Vector2 getSpawnPoint() { float x=0, y=0; - boolean found = false; - x = getWidth()/2; - while (!found) { - for (int i = 0; i < getHeight(); i++) { - if (getForeMap((int)x, i)>0 && - Items.BLOCKS.getValueAt(getForeMap((int)x, i)).collision) { - y = i-3; - found = true; - break; - } - } - if (!found) x--; - } x = x*16 + 4; y *= 16; return new Vector2(x,y);