From 945837642e83fabab9d061269b03fa8b19237519 Mon Sep 17 00:00:00 2001 From: toksikk Date: Fri, 7 Nov 2014 16:00:57 +0100 Subject: [PATCH] Erweiterte Collision Detection --- .../de/heatup/mapengine/CollisionHandler.java | 70 +++++++++++++++++-- HeatUp/src/de/heatup/testing/GameLoopD.java | 4 +- 2 files changed, 68 insertions(+), 6 deletions(-) diff --git a/HeatUp/src/de/heatup/mapengine/CollisionHandler.java b/HeatUp/src/de/heatup/mapengine/CollisionHandler.java index cbd6ae1..08a626c 100644 --- a/HeatUp/src/de/heatup/mapengine/CollisionHandler.java +++ b/HeatUp/src/de/heatup/mapengine/CollisionHandler.java @@ -3,6 +3,7 @@ package de.heatup.mapengine; import java.util.ArrayList; import de.heatup.logging.Logger; +import de.heatup.testing.Opponent; import de.heatup.testing.Player; public class CollisionHandler { @@ -14,29 +15,90 @@ public class CollisionHandler { * @return */ public static boolean checkCollision(Player movingObject, char d) { +// if (movingObject == (movingObjects.get(0))) { + if (movingObject.equals(movingObjects.get(0))) { + enemyCollision(movingObject, d); + hardwareCollision(movingObject, d); + return normalCheck(movingObject, d); + } else { + playerCollision(movingObject, d); + return normalCheck(movingObject, d); + } +// switch (d) { +// case 'l': +// if (MapGrid.getGridCell(movingObject.getGridLocation().x-1, movingObject.getGridLocation().y).isPath() && MapGrid.getGridCell(movingObject.getGridLocation().x-1, movingObject.getGridLocation().y).isTrigger()) { +// Logger.write("Collision with trigger of hardware ID: " + MapGrid.getGridCell(movingObject.getGridLocation().x-1, movingObject.getGridLocation().y).getCorrespondingHardwareToTrigger()); +// } +// return MapGrid.getGridCell(movingObject.getGridLocation().x-1, movingObject.getGridLocation().y).isPath(); +// case 'r': +// if (MapGrid.getGridCell(movingObject.getGridLocation().x+1, movingObject.getGridLocation().y).isPath() && MapGrid.getGridCell(movingObject.getGridLocation().x+1, movingObject.getGridLocation().y).isTrigger()) { +// Logger.write("Collision with trigger of hardware ID: " + MapGrid.getGridCell(movingObject.getGridLocation().x+1, movingObject.getGridLocation().y).getCorrespondingHardwareToTrigger()); +// } +// return MapGrid.getGridCell(movingObject.getGridLocation().x+1, movingObject.getGridLocation().y).isPath(); +// case 'd': +// if (MapGrid.getGridCell(movingObject.getGridLocation().x, movingObject.getGridLocation().y+1).isPath() && MapGrid.getGridCell(movingObject.getGridLocation().x, movingObject.getGridLocation().y+1).isTrigger()) { +// Logger.write("Collision with trigger of hardware ID: " + MapGrid.getGridCell(movingObject.getGridLocation().x, movingObject.getGridLocation().y+1).getCorrespondingHardwareToTrigger()); +// } +// return MapGrid.getGridCell(movingObject.getGridLocation().x, movingObject.getGridLocation().y+1).isPath(); +// case 'u': +// if (MapGrid.getGridCell(movingObject.getGridLocation().x, movingObject.getGridLocation().y-1).isPath() && MapGrid.getGridCell(movingObject.getGridLocation().x, movingObject.getGridLocation().y-1).isTrigger()) { +// Logger.write("Collision with trigger of hardware ID: " + MapGrid.getGridCell(movingObject.getGridLocation().x, movingObject.getGridLocation().y-1).getCorrespondingHardwareToTrigger()); +// } +// return MapGrid.getGridCell(movingObject.getGridLocation().x, movingObject.getGridLocation().y-1).isPath(); +// default: +// return true; +// } + } + private static void playerCollision(Player movingObject, char d) { + if (movingObject.getGridLocation().x== movingObjects.get(0).getGridLocation().x && movingObject.getGridLocation().y == movingObjects.get(0).getGridLocation().y) { +// System.exit(-1); + } + } + private static void enemyCollision(Player movingObject, char d ) { + for (int i=1; i