X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=core%2Fsrc%2Fru%2Fdeadsoftware%2Fcavedroid%2Fgame%2FGameRenderer.java;h=28e93bb743438aaa45c49b511bfccc2f1d60a498;hb=17c1be4c02b27fefa1bf6abd0547ac7e9743d493;hp=1f1858989ac0284644b0e725d2d3f433c4bf36fd;hpb=1373d2f790f33688565537b5780ab59faff163ab;p=cavedroid.git diff --git a/core/src/ru/deadsoftware/cavedroid/game/GameRenderer.java b/core/src/ru/deadsoftware/cavedroid/game/GameRenderer.java index 1f18589..28e93bb 100644 --- a/core/src/ru/deadsoftware/cavedroid/game/GameRenderer.java +++ b/core/src/ru/deadsoftware/cavedroid/game/GameRenderer.java @@ -36,7 +36,8 @@ public class GameRenderer extends Renderer { if (GP.input.getBlockDamage() > 0) { int index = 10 * GP.input.getBlockDamage() / GameItems.getBlock(bl).getHp(); String key = "break_" + index; - spriter.draw(textureRegions.get(key), GP.input.getCurX() * 16 - getCamX(), GP.input.getCurY() * 16 - getCamY()); + spriter.draw(textureRegions.get(key), GP.input.getCurX() * 16 - getCamX(), + GP.input.getCurY() * 16 - getCamY()); } } @@ -88,17 +89,18 @@ public class GameRenderer extends Renderer { } private void drawMob(Mob mob) { - float mobDrawX = mob.pos.x - getCamX(); - float mobDrawY = mob.pos.y - getCamY(); - - if (mobDrawX + mob.getWidth() - GP.world.getWidthPx() >= 0 && mobDrawX - GP.world.getWidthPx() <= getWidth()) - mob.draw(spriter, mobDrawX - GP.world.getWidthPx(), mobDrawY); + float mobDrawX = mob.getX() - getCamX(); + float mobDrawY = mob.getY() - getCamY(); - if (mobDrawX + mob.getWidth() >= 0 && mobDrawX <= getWidth()) - mob.draw(spriter, mobDrawX, mobDrawY); + if (mobDrawX + mob.getWidth() < 0 && mobDrawX + GP.world.getWidthPx() > 0) { + mobDrawX += GP.world.getWidthPx(); + } else if (mobDrawX > getWidth() && mobDrawX + mob.getWidth() - GP.world.getWidthPx() > 0) { + mobDrawX -= GP.world.getWidthPx(); + } else if (mobDrawX + mob.getWidth() < 0 && mobDrawX > getWidth()) { + return; + } - if (mobDrawX + mob.getWidth() + GP.world.getWidthPx() >= 0 && mobDrawX + GP.world.getWidthPx() <= getWidth()) - mob.draw(spriter, mobDrawX + GP.world.getWidthPx(), mobDrawY); + mob.draw(spriter, mobDrawX, mobDrawY); } private void drawDrop(Drop drop) { @@ -181,9 +183,9 @@ public class GameRenderer extends Renderer { private void drawGamePlay() { drawWorld(true); - GP.player.draw(spriter, GP.player.pos.x - getCamX() - 2, GP.player.pos.y - getCamY()); - for (Mob mob : GP.mobs) drawMob(mob); - for (Drop drop : GP.drops) drawDrop(drop); + GP.player.draw(spriter, GP.player.getX() - getCamX() - 2, GP.player.getY() - getCamY()); + GP.mobs.forEach(this::drawMob); + GP.drops.forEach(this::drawDrop); drawWorld(false); drawGUI(); } @@ -231,7 +233,7 @@ public class GameRenderer extends Renderer { } } shaper.setColor(Color.OLIVE); - shaper.rect(GP.player.pos.x / 16, GP.player.pos.y / 16 - 128, 1, 2); + shaper.rect(GP.player.getMapX(), GP.player.getUpperMapY() - 128, 1, 2); shaper.end(); //================= } @@ -239,8 +241,8 @@ public class GameRenderer extends Renderer { if (GameScreen.SHOW_DEBUG) { spriter.begin(); drawString("FPS: " + GameScreen.FPS, 0, 0); - drawString("X: " + (int) (GP.player.pos.x / 16), 0, 10); - drawString("Y: " + (int) (GP.player.pos.y / 16), 0, 20); + drawString("X: " + GP.player.getMapX(), 0, 10); + drawString("Y: " + GP.player.getUpperMapY() / 16, 0, 20); drawString("CurX: " + GP.input.getCurX(), 0, 30); drawString("CurY: " + GP.input.getCurY(), 0, 40); drawString("Mobs: " + GP.mobs.size(), 0, 50);