示例#1
0
  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);
    }
  }