Esempio n. 1
0
  public boolean checkCollision(int collisionIndex, PickResult[] resultArray) {
    // System.out.println(resultArray);
    if (resultArray == null || resultArray.length == 0 || resultArray[0] == null) return false;
    /*
     * We use the user data on the nodes to ignore the case of the
     * collisionObject having collided with itself! The user data also gives
     * us a good mechanism for reporting the collisions.
     */
    for (int n = 0; n < resultArray.length; n++) {
      // System.out.println("something "+resultArray[n]);
      int numIntersections = resultArray[n].numIntersections();
      for (int i = 0; i < numIntersections; i++) {
        PickIntersection pi = resultArray[n].getIntersection(i);
        if (pi.getDistance() < 1) {
          // System.out.println(resultArray[n]);
          // int numNodes = resultArray[n].
          // for (int j = 0; )
          Node node = resultArray[n].getObject();
          System.out.println(node);
          if (node == PlayFrame.COLLISION_WALLS[PlayFrame.WALL_FRONT]) {
            //						System.out.println("front");

            incrementVector[collisionIndex].z = -incrementVector[collisionIndex].z;
          } else if (node == PlayFrame.COLLISION_WALLS[PlayFrame.WALL_BACK]) {
            //						System.out.println("back");

            incrementVector[collisionIndex].z = -incrementVector[collisionIndex].z;
          } else if (node == PlayFrame.COLLISION_WALLS[PlayFrame.WALL_LEFT]) {
            //						System.out.println("left");
            incrementVector[collisionIndex].x = -incrementVector[collisionIndex].x;

          } else if (node == PlayFrame.COLLISION_WALLS[PlayFrame.WALL_RIGHT]) {
            //						System.out.println("right");
            incrementVector[collisionIndex].x = -incrementVector[collisionIndex].x;
          } else if (collisionIndex >= 3 && "Me".equals(node.getUserData())) {
            incrementVector[collisionIndex].negate();
          } else if (collisionIndex < 3 && "Enemy".equals(node.getUserData())) {
            incrementVector[collisionIndex].negate();
          }
          return true;
        }
      }
    }
    return false;
  }