X-Git-Url: https://deadsoftware.ru/gitweb?a=blobdiff_plain;f=core%2Fsrc%2Fru%2Fdeadsoftware%2Fcavecraft%2Fgame%2FGameProc.java;h=5b497a4ae17b846d794dabf8869940dd48f886d6;hb=d7f5950fc751cec8fa64005dd1886cac4081ee99;hp=08f44251f6ed20bdca7fa9d38cbcab54c799a647;hpb=be2690f1dee10f68a5ce6d576ace13c825ac5d15;p=cavedroid.git diff --git a/core/src/ru/deadsoftware/cavecraft/game/GameProc.java b/core/src/ru/deadsoftware/cavecraft/game/GameProc.java index 08f4425..5b497a4 100644 --- a/core/src/ru/deadsoftware/cavecraft/game/GameProc.java +++ b/core/src/ru/deadsoftware/cavecraft/game/GameProc.java @@ -44,10 +44,10 @@ public class GameProc implements Serializable { public int touchDownBtn; public long touchDownTime; - public GameProc() { + public GameProc(int gameMode) { world = new GameWorld(); world.generate(1024, 256); - player = new Player(world.getSpawnPoint()); + player = new Player(world, gameMode); drops = new ArrayList(); mobs = new ArrayList(); for (int i = 0; i < 16; i++) { @@ -365,9 +365,9 @@ public class GameProc implements Serializable { } } - if (world.getForeMap(x, y) == 59) { + if (world.getForeMap(x, y) > 0 && GameItems.getBlock(world.getForeMap(x, y)).rb) { if (world.getForeMap(x, y + 1) == 0 || !GameItems.getBlock(world.getForeMap(x, y + 1)).coll) { - world.setForeMap(x, y, 0); + world.destroyForeMap(x, y, this); updateBlock(x, y - 1); } } @@ -409,14 +409,27 @@ public class GameProc implements Serializable { checkCursorBounds(); if (isTouchDown && touchDownBtn == Input.Buttons.LEFT) { - if (world.getForeMap(curX, curY) > 0 && - GameItems.getBlock(world.getForeMap(curX, curY)).getHp() >= 0) {// || world.getBackMap(curX, curY) > 0) { - blockDmg++; - if (blockDmg >= GameItems.getBlock(world.getForeMap(curX, curY)).getHp()) { - if (GameItems.getBlock(world.getForeMap(curX, curY)).getDrop() > 0) - drops.add(new Drop(curX * 16 + 4, curY * 16 + 4, GameItems.getBlock(world.getForeMap(curX, curY)).getDrop())); - world.placeToForeground(curX, curY, 0); - blockDmg = 0; + if ((world.getForeMap(curX, curY) > 0 && GameItems.getBlock(world.getForeMap(curX, curY)).getHp() >= 0) || + (world.getForeMap(curX, curY) == 0 && + world.getBackMap(curX, curY) > 0 && + GameItems.getBlock(world.getBackMap(curX, curY)).getHp() >= 0)) { + if (player.gameMode == 0) { + blockDmg++; + if (world.getForeMap(curX, curY) > 0) { + if (blockDmg >= GameItems.getBlock(world.getForeMap(curX, curY)).getHp()) { + world.destroyForeMap(curX, curY, this); + blockDmg = 0; + } + } else if (world.getBackMap(curX, curY) > 0) { + if (blockDmg >= GameItems.getBlock(world.getBackMap(curX, curY)).getHp()) { + world.destroyBackMap(curX, curY, this); + blockDmg = 0; + } + } + } else { + if (world.getForeMap(curX, curY) > 0) world.placeToForeground(curX, curY, 0); + else if (world.getBackMap(curX, curY) > 0) world.placeToBackground(curX, curY, 0); + isTouchDown = false; } } }