Exemplo n.º 1
0
    @Override
    public boolean onAreaTouched(
        TouchEvent pSceneTouchEvent, float pTouchAreaLocalX, float pTouchAreaLocalY) {
      if (!this.isVisible()) {
        return true;
      }
      if (pSceneTouchEvent.isActionDown()) {
        this.clearEntityModifiers();
        A19_10_POMI.play();
      } else if (pSceneTouchEvent.isActionMove()) {
        this.setPosition(
            pSceneTouchEvent.getX() - this.getWidth() / 2,
            pSceneTouchEvent.getY() - this.getHeight() / 2);
        if (checkContains(
            mFingerAnimatedSprite[4],
            57,
            43,
            185,
            171,
            (int) pSceneTouchEvent.getX(),
            (int) pSceneTouchEvent.getY())) {

          babyDring();
          this.setPosition(this.PX, this.PY);
          this.setVisible(false);
        }
      } else if (pSceneTouchEvent.isActionUp()) {
        this.setPosition(this.PX, this.PY);
        this.rotateAction();
      }
      return true;
    }
  private void handleRotateCharTouchEvent(TouchEvent touchEvent) {
    if (touchEvent.isActionDown()
        && Boundary.BoundaryUtils.isIntersecting(this.baPlayerBoundary, this.baTouchBoundary)) {
      this.isRotatingSkin = true;
      this.rotateCharInitalTouchX = touchEvent.getX();
      this.sRotateChar.setAlpha(1f);
    } else if (touchEvent.isActionUp()) {
      this.isRotatingSkin = false;
      this.sRotateChar.setAlpha(1f);
    }

    if (this.isRotatingSkin)
      if (touchEvent.isActionMove()) {
        final float DELTA = this.rotateCharInitalTouchX - touchEvent.getX();
        final float DELTA_ABS = Math.abs(DELTA);

        if (DELTA_ABS > MainMenuEditPlayer.ROTATE_MOVE_SENSITIVITY) {
          final int STEPS =
              (int) Math.floor(DELTA_ABS / MainMenuEditPlayer.ROTATE_MOVE_SENSITIVITY);

          MainMenuEditPlayer.skinMoveDirectionIndex += (DELTA > 0) ? STEPS : -STEPS;

          if (MainMenuEditPlayer.skinMoveDirectionIndex < 0)
            MainMenuEditPlayer.skinMoveDirectionIndex += Direction.values().length - 1;
          else if (MainMenuEditPlayer.skinMoveDirectionIndex > Direction.values().length - 2)
            MainMenuEditPlayer.skinMoveDirectionIndex -= Direction.values().length - 2;
          this.rotateCharInitalTouchX = touchEvent.getX();
          this.directPlayerSkin();
        }
      }
  }
Exemplo n.º 3
0
  @Override
  public boolean onAreaTouched(
      final TouchEvent pSceneTouchEvent,
      final float pTouchAreaLocalX,
      final float pTouchAreaLocalY) {
    if (!this.isEnabled()) {
      this.changeState(State.DISABLED);
    } else if (pSceneTouchEvent.isActionDown()) {
      if (this.mState != State.PRESSED) {
        doPressedDown(pTouchAreaLocalX, pTouchAreaLocalY);
      } else {
        doUnpressed(pTouchAreaLocalX, pTouchAreaLocalY);
      }
    } else if (pSceneTouchEvent.isActionCancel()) {
      doCancelled();
    } else if (pSceneTouchEvent.isActionUp()) {
      boolean contains = this.contains(pSceneTouchEvent.getX(), pSceneTouchEvent.getY());
      if (this.mState == State.PRESSED && !this.mIsBistable && contains) {
        doUnpressed(pTouchAreaLocalX, pTouchAreaLocalY);
      } else if (!contains) {
        doCancelled();
      }
    }

    return true;
  }
    @Override
    public boolean onAreaTouched(
        TouchEvent pSceneTouchEvent, float pTouchAreaLocalX, float pTouchAreaLocalY) {
      float pX = pSceneTouchEvent.getX();
      float pY = pSceneTouchEvent.getY();

      if (pSceneTouchEvent.isActionDown()) {
        if (checkContainsPolygon(mTabSprite[0], POINTER_FACE, 8, pX, pY)) {
          Log.i(TAG, "Touch to body Face !");
          actionFace();
        }

        if (mCubicChooseSpite[CUBIC_ORANGE].contains(pX, pY)
            && mCubicChooseSpite[CUBIC_ORANGE].isVisible()) {
          insertCubicToTab(CUBIC_ORANGE);
        } else if (mCubicChooseSpite[CUBIC_BLUE].contains(pX, pY)
            && mCubicChooseSpite[CUBIC_BLUE].isVisible()) {
          insertCubicToTab(CUBIC_BLUE);
        } else if (mCubicChooseSpite[CUBIC_GREEN].contains(pX, pY)
            && mCubicChooseSpite[CUBIC_GREEN].isVisible()) {
          insertCubicToTab(CUBIC_GREEN);
        } else if (mCubicChooseSpite[CUBIC_YELLOW].contains(pX, pY)
            && mCubicChooseSpite[CUBIC_YELLOW].isVisible()) {
          insertCubicToTab(CUBIC_YELLOW);
        }
      }
      return super.onAreaTouched(pSceneTouchEvent, pTouchAreaLocalX, pTouchAreaLocalY);
    }
Exemplo n.º 5
0
 public boolean onSceneTouchEvent(Scene pScene, TouchEvent pSceneTouchEvent) {
   if (pSceneTouchEvent.isActionDown()) {
     if (this.isPaused) {
       this.resume();
     } else if (this.isWin) {
       this.onBackKeyPressed();
     } else {
       if (pSceneTouchEvent.getY() >= 240) {
         // Jump
         if (this.player.isSwapped()) {
           this.player.roll();
         } else {
           this.player.jump();
         }
       } else if (pSceneTouchEvent.getY() < 240) {
         // Roll
         if (this.player.isSwapped()) {
           this.player.jump();
         } else {
           this.player.roll();
         }
       }
     }
   }
   return false;
 }
Exemplo n.º 6
0
  @Override
  public boolean onSceneTouchEvent(TouchEvent pSceneTouchEvent) {

    if (pSceneTouchEvent.isActionDown() && !personajeSaltando) {
      personajeSaltando = true;
      // Animar sprite central
      JumpModifier salto =
          new JumpModifier(
              1,
              spritePersonaje.getX(),
              spritePersonaje.getX(),
              spritePersonaje.getY(),
              spritePersonaje.getY(),
              -200);
      RotationModifier rotacion = new RotationModifier(1, 360, 0);
      ParallelEntityModifier paralelo =
          new ParallelEntityModifier(salto, rotacion) {
            @Override
            protected void onModifierFinished(IEntity pItem) {
              personajeSaltando = false;
              unregisterEntityModifier(this);
              super.onModifierFinished(pItem);
            }
          };
      spritePersonaje.registerEntityModifier(paralelo);
    }

    if (pSceneTouchEvent.isActionDown()) {
      // El usuario toca la pantalla
      float x = pSceneTouchEvent.getX();
      float y = pSceneTouchEvent.getY();
      spritePersonaje.setPosition(x, y);
    }
    if (pSceneTouchEvent.isActionMove()) {
      // El usuario mueve el dedo sobre la pantalla
      float x = pSceneTouchEvent.getX();
      float y = pSceneTouchEvent.getY();
      spritePersonaje.setPosition(x, y);
    }
    if (pSceneTouchEvent.isActionUp()) {
      // El usuario deja de tocar la pantalla
    }

    return super.onSceneTouchEvent(pSceneTouchEvent);
  }
Exemplo n.º 7
0
 @Override
 public boolean onSceneTouchEvent(final Scene pScene, final TouchEvent pSceneTouchEvent) {
   if (this.mPhysicsWorld != null) {
     // When player touch the screen
     if (pSceneTouchEvent.isActionDown()) {
       this.jumpMario(mario);
       return true;
     }
   }
   return false;
 }
Exemplo n.º 8
0
        @Override
        public boolean onSceneTouchEvent(Scene pScene, TouchEvent pSceneTouchEvent) {
          // TODO Auto-generated method stub
          if (pSceneTouchEvent.isActionDown()) {
            newPlayerPositionX = pSceneTouchEvent.getMotionEvent().getX();
            newPlayerPositionY = pSceneTouchEvent.getMotionEvent().getY();
            System.out.println("NewPosition:" + newPlayerPositionX + "," + newPlayerPositionY);

            isPlayerMoving = true;
          }
          return true;
        }
    @Override
    public boolean onAreaTouched(
        TouchEvent pSceneTouchEvent, float pTouchAreaLocalX, float pTouchAreaLocalY) {

      if (pSceneTouchEvent.isActionDown()) {
        // Log.i(TAG, "Touch CubicTouch isActionDown");
        if (checkContains(
            mSuzuAniSprite, 113, 30, 251, 202, (int) pTouchAreaLocalX, (int) pTouchAreaLocalY)) {
          Log.i(TAG, "Touch to ActionSuzuShiShi !");
          actionSuzuShiShi();
          return true;
        }
        for (int i = 0; i < mCubicEntity.length; i++) {
          if (mCubicEntity[i].isVisible()
              && mCubicEntity[i]
                  .getCubicBody()
                  .contains(pSceneTouchEvent.getX(), pSceneTouchEvent.getY())) {
            pxMOVE = pSceneTouchEvent.getX();
            if (mCubicEntity[i].actionDown() > 0) {
              Log.i(TAG, "Touch CubicTouch > 0");
            } else {
              Log.i(TAG, "Touch CubicTouch < 0 " + i);
              CUBICID = i;
            }
            return true;
          }
        }
      } else if (pSceneTouchEvent.isActionMove()) {
        // Log.i(TAG, "Touch CubicTouch isActionMove");
      } else if (pSceneTouchEvent.isActionUp()) {
        Log.i(TAG, "Touch CubicTouch isActionUp" + CUBICID);
        if (CUBICID >= 0 && mCubicEntity[CUBICID].getCubicAction() == CubicEntity.ACTION_DEFAULT) {
          float offset = pSceneTouchEvent.getX() - pxMOVE;
          if (offset < 0) {
            if (Math.abs(offset) >= 350) {
              Log.i(TAG, "Level 3");
              mCubicEntity[CUBICID].actionUp(CubicEntity.ACTION_TURN_LEVEL_3);
            } else if (Math.abs(offset) >= 200) {
              Log.i(TAG, "Level 2");
              mCubicEntity[CUBICID].actionUp(CubicEntity.ACTION_TURN_LEVEL_2);
            } else if (Math.abs(offset) >= 0) {
              Log.i(TAG, "Level 1");
              mCubicEntity[CUBICID].actionUp(CubicEntity.ACTION_TURN_LEVEL_1);
            }
          }
        }

        CUBICID = -1;
      }
      return super.onAreaTouched(pSceneTouchEvent, pTouchAreaLocalX, pTouchAreaLocalY);
    }
Exemplo n.º 10
0
  @Override
  public boolean onSceneTouchEvent(Scene pScene, TouchEvent pSceneTouchEvent) {

    if (pSceneTouchEvent.isActionDown()) {
      int cX = (int) pSceneTouchEvent.getX();
      int cY = (int) pSceneTouchEvent.getY(); /*
			int cX = (int)pSceneTouchEvent.getMotionEvent().getX();
			int cY = (int)pSceneTouchEvent.getMotionEvent().getY();*/
      // this.targetX = this.currX + (cX - this.CAMERA_WIDTH/2);
      // this.targetY = this.currY + (cY - this.CAMERA_HEIGHT/2);
      this.targetX = cX;
      this.targetY = cY;
      // TODO: border case
      // scene.attachChild(new Sprite(cX,cY, this.mLouisTextureRegion,
      // getVertexBufferObjectManager()));
      /*
      dX = 10;
      dY = 10;
      System.out.print("clicked!");
      if (pSceneTouchEvent.getX() < CAMERA_WIDTH/2)
      {
      	dX = -10;
      }
      if (pSceneTouchEvent.getY() < CAMERA_HEIGHT/2)
      {
      	dY = -10;
      }*/

      // cene.clearChildScene();

      /*if (counter < text.length - 1)
      	counter++;
      mText = new Text(100, 40, mFont, text[counter], new TextOptions(HorizontalAlign.CENTER), this.getVertexBufferObjectManager());
      scene.attachChild(backgroundSprite);
      if (counter % 2 == 0)
      	scene.attachChild(mRobin);
      else
      	scene.attachChild(mLouis);
      scene.attachChild(mText);*/
      return true;
    }
    /*
    if (pSceneTouchEvent.isActionMove())
    {
    	pScene.attachChild(mRobin);
    	return true;
    }*/

    return false;
  }
  @Override
  public boolean onSceneTouchEvent(final Scene pScene, final TouchEvent pSceneTouchEvent) {
    if (pSceneTouchEvent.isActionDown()) {
      MotionStreakExample.this.mMotionStreaking = !MotionStreakExample.this.mMotionStreaking;

      MotionStreakExample.this.runOnUiThread(
          new Runnable() {
            @Override
            public void run() {
              Toast.makeText(
                      MotionStreakExample.this,
                      "MotionStreaking "
                          + (MotionStreakExample.this.mMotionStreaking ? "enabled." : "disabled."),
                      Toast.LENGTH_SHORT)
                  .show();
            }
          });
    }
    return true;
  }
Exemplo n.º 12
0
    @Override
    public boolean onAreaTouched(
        TouchEvent pSceneTouchEvent, float pTouchAreaLocalX, float pTouchAreaLocalY) {

      /* If the LevelSelector is not hidden, proceed to execute the touch event */
      if (!LevelSelector.this.mHidden) {

        /* If a level tile is initially pressed down on */
        if (pSceneTouchEvent.isActionDown()) {
          /* If this level tile is locked... */
          if (!this.mIsLocked) {
            LevelSelector.this.hide();
            GameManager.getInstance().getSaveHandler().setCurrentFase(this.mLevelNumber);
            // !!!!!!!!!!! Depois colocar para carregar cada fase espec�fica
            SceneManager.getInstance().loadGameSceneFromSelector();
            ResourceManager.Mmenu.pause();
            ResourceManager.Mmenu.seekTo(0);
          }
          return true;
        }
      }
      return super.onAreaTouched(pSceneTouchEvent, pTouchAreaLocalX, pTouchAreaLocalY);
    }
Exemplo n.º 13
0
  /** TODO So ugly :( Maybe make it its own class? */
  @Override
  public boolean onSceneTouchEvent(final Scene pScene, final TouchEvent pSceneTouchEvent) {
    final Float x = pSceneTouchEvent.getX();
    final Float y = pSceneTouchEvent.getY();

    currentTile = this.tmxLayer.getTMXTileAt(x, y);

    // if the user pinches or dragtouches the screen then...
    if (this.mPinchZoomDetector != null) {

      this.mPinchZoomDetector.onTouchEvent(pSceneTouchEvent);
      if (this.mPinchZoomDetector.isZooming()) {
        this.mScrollDetector.setEnabled(false);
      } else if (!towerMove) {
        if (pSceneTouchEvent.isActionDown()) {
          this.mScrollDetector.setEnabled(true);
        }
        this.mScrollDetector.onTouchEvent(pSceneTouchEvent);
      }

    } else {
      this.mScrollDetector.onTouchEvent(pSceneTouchEvent);
    }

    if (pSceneTouchEvent.isActionDown()) {
      downCoords.set(x, y);

      SubMenuManager.setReticalPosition(-500.0f, -500.0f);

      Log.i("Detaching now", "NOW");
      SubMenuManager.remove();
      this.unregisterTouchArea(SubMenuManager.getDeleteSprite());

      panel.detachTowerUpgradeDeleteText();
      panel.detachTowerTextDescription();
      panel.attachTowerTextDescription(pointOnTile(TouchEvent.ACTION_DOWN));
    }

    Class<?> tClass;
    if (pSceneTouchEvent.isActionMove()) {

      tClass = pointOnTile(TouchEvent.ACTION_MOVE);
      if (tClass != null && !towerMove) {
        dragTower = null;
        towerMove = true;
        if (tClass.equals(TurretTower.class) && canAfford(TurretTower.COST)) {
          dragTower = new TurretTower(x, y, resourceManager.getTurretTowerRegion());
        } else if (tClass.equals(DartTower.class) && canAfford(DartTower.COST)) {
          dragTower = new DartTower(x, y, resourceManager.getDartTowerRegion());
        } else if (tClass.equals(FlameTower.class) && canAfford(FlameTower.COST)) {
          dragTower = new FlameTower(x, y, resourceManager.getFlameTowerRegion());
        } else if (tClass.equals(IceTower.class) && canAfford(IceTower.COST)) {
          dragTower = new IceTower(x, y, resourceManager.getIceTowerRegion());
        } else if (tClass.equals(SpikeTower.class) && canAfford(SpikeTower.COST)) {
          dragTower = new SpikeTower(x, y, resourceManager.getSpikeTowerRegion());
        } else towerMove = false;

        if (dragTower != null) {
          dragTower.getEntity().setZIndex(2);
          dragTower.getEntity().setScale(0.5f);

          activity.runOnUpdateThread(
              new Runnable() {
                @Override
                public void run() {
                  attachChild(dragTower.getEntity());

                  try {
                    attachChild(SubMenuManager.getReticle(dragTower));
                  } catch (Exception e) {
                  }
                  sortChildren();
                }
              });
          tClass = null;
        }

      }

      // Moving an active drag tower
      else if (towerMove) {
        if (pointOnMap(x, y)) {

          dragTower.setPosition(
              currentTile.getTileX() - GameMap.getTileSize() / 2,
              currentTile.getTileY() - GameMap.getTileSize() / 2);

          if (highlightTile == null) {
            highlightTile =
                new Rectangle(
                    currentTile.getTileX(),
                    currentTile.getTileY(),
                    GameMap.getTileSize(),
                    GameMap.getTileSize(),
                    activity.getVertexBufferObjectManager());
            highlightTile.setTag(777);
            highlightTile.setZIndex(1);
            this.attachChild(highlightTile);
            this.sortChildren();
          } else {
            highlightTile.setPosition(currentTile.getTileX(), currentTile.getTileY());
          }

          if (!inLegitimatePosition(currentTile)) {
            highlightTile.setColor(Color.RED);
          } else {
            highlightTile.setColor(Color.BLUE);
          }

          // if you drag the dragtower off the map, and then back on, we need to be able to tag it
          // so we can display the highlight tile again
          if (this.getChildByTag(777) == null) {
            this.attachChild(highlightTile);
            this.sortChildren();
          }
        }
        // if point NOT on map
        else {
          if (highlightTile != null) {
            detachHighlightTile();
          }
          dragTower.setPosition(
              pSceneTouchEvent.getX() - dragTower.getEntity().getWidth() / 2,
              pSceneTouchEvent.getY() - dragTower.getEntity().getHeight() / 2);
        }
      }
    } else if (pSceneTouchEvent.isActionUp()) {

      if (zooming) {
        fingerOnSceneCount--;

        if (fingerOnSceneCount == 0) {
          zooming = false;
          setUserDataforTowerTiles("");

          for (TowerTile tile : panel.getTiles()) {
            tile.returnOnMoved();
          }
        }
      }

      if (towerMove) {
        towerMove = false;

        if (currentTile != null
            && highlightTile != null
            && highlightTile.getColor().equals(Color.BLUE)) {

          // Add the tile to the blocked list
          blockedTileList.add(currentTile);

          towers.add(dragTower);
          SubMenuManager.getReticle(dragTower).detachSelf();

          // need to get it out of the scene so that the next dragtower doesn't have to start with
          // it from where the
          // previous tower was placed
          SubMenuManager.setReticalPosition(-500.0f, -500.0f);

          // Nothing is free in this world
          this.payAmount(dragTower.getCost());

          // If we are in the middle of a wave, the AStarPath class must update
          // the path since there is now a new tower on the field
          updateAffectedEnemies(currentTile, aStarHelper.isNavigating());
        } else {
          removeCurrentTower(false);
        }

        if (highlightTile != null) {
          detachHighlightTile();
        }
      } else if (Math.abs(downCoords.x - x) < 15.0f && Math.abs(downCoords.y - y) < 15.0f) {

        final ITower tower = pointOnExistingTower(x, y);
        if (tower != null) {
          this.attachChild(SubMenuManager.display(tower));
          Log.i("Reticle", "Visible? " + SubMenuManager.getReticle(tower).isVisible() + "");
          panel.attachTowerUpgradeDeleteText(tower);

          if (camera.getZoomFactor() - 1.0f < 0.00005f && camera.getYMin() < 0.00005f) {

            final float displacement = tower.getRadius() - tower.getEntity().getHeightScaled() / 2;
            if (tower.getY() == -20.0f) {
              camera.set(
                  camera.getXMin(),
                  camera.getYMin() - displacement,
                  camera.getXMax(),
                  camera.getYMax() - displacement);
            } else if (tower.getY() == 340.0f) {
              camera.set(
                  camera.getXMin(),
                  camera.getYMin() + displacement,
                  camera.getXMax(),
                  camera.getYMax() + displacement);
            }
          }
        }
      }
    }
    return true;
  }