コード例 #1
0
ファイル: TouchPong.java プロジェクト: abom/multitouchj
  private void handleTouchs(TouchEvent touchEvent, boolean ended) {
    if (GameState.Ready.equals(gameState)) {
      gameState = GameState.Start;
      return;
    }
    if (!GameState.Playing.equals(gameState)) {
      return;
    }

    // log.debug("handleTouches: "+touchEvent.getObjectObserverEvents().size()+", "+ended);
    if (ended) {
      for (BounceableControl paddle : paddles.values()) {
        paddle.setVisible(false);
      }
    } else {
      List<ObjectObserverEvent> ooes = touchEvent.getObjectObserverEvents();

      // try finding the pair
      for (int i = 0; i < NUMBER_OF_PADDLES; i++) {
        int idA = (i * 2);
        int idB = (i * 2) + 1;
        ObjectObserverEvent ooeA = null;
        ObjectObserverEvent ooeB = null;
        for (ObjectObserverEvent ooe : ooes) {
          if (ooe.getId() == idA) {
            ooeA = ooe;
          } else if (ooe.getId() == idB) {
            ooeB = ooe;
          }
        }

        BounceableControl paddle = paddles.get(i);
        if ((ooeA != null) && (ooeB != null)) {
          Point pointA = new Point(ooeA.getX(), ooeA.getY());
          Point pointB = new Point(ooeB.getX(), ooeB.getY());
          float distance = PointUtility.getDistance(pointA, pointB);
          float angle = PointUtility.getAngle(pointA, pointB, false);
          Point center =
              new Point(
                  (pointA.getX() + ((pointB.getX() - pointA.getX()) / 2.0f)),
                  (pointA.getY() + ((pointB.getY() - pointA.getY()) / 2.0f)));

          // log.debug("center: "+center.toString());
          // log.debug("angle: "+angle);
          // log.debug("distance: "+distance);

          paddle.setVisible(true);
          paddle.setSize(new Size(distance, PADDLE_SIZE));
          paddle.setPosition(center);
          paddle.setRotation(angle);
        } else {
          paddle.setVisible(false);
        }
      }
    }
  }
コード例 #2
0
ファイル: OpenGlUtility.java プロジェクト: abom/multitouchj
 public static Point getOpenGlPosition(Size displaySize, Point position) {
   return new Point(position.getX(), (displaySize.getHeight() - position.getY()));
 }