public static void disappearIntoTrap(Enemy e) { double startSuck = TrapDroppedGBS.animationTime2; double shouldbeGone = TrapDroppedGBS.animationTime3; long cT = MazeRunner.currentTime; if (e.TOD + shouldbeGone > cT && cT > e.TOD + startSuck) { // x translaten double gewenstX = e.getTrappedX(); double curX = e.locationX; double deltaX = gewenstX - curX; double x = e.locationX + deltaX * (cT - startSuck - e.TOD) / shouldbeGone; e.setLocationX(x); // y translaten double gewenstY = MazeRunner.level.getMaze(MazeRunner.level.getCurrentMaze(e)).mazeY + 0.1; double curY = e.locationY; double deltaY = gewenstY - curY; double y = e.locationY + deltaY * (cT - startSuck - e.TOD) / shouldbeGone; e.setLocationY(y); // z translaten double gewenstZ = e.getTrappedZ(); double curZ = e.locationZ; double deltaZ = gewenstZ - curZ; double z = e.locationZ + deltaZ * (cT - startSuck - e.TOD) / shouldbeGone; e.setLocationZ(z); // Down-scalen double gewenstS = 0; double curS = e.getSize(); double deltaS = gewenstS - curS; double s = e.getSize() + deltaS * (cT - startSuck - e.TOD) / shouldbeGone; e.setSize(s); } if (e.TOD + shouldbeGone < cT) { e.setDead(true); } }