コード例 #1
0
ファイル: PuzzleGame.java プロジェクト: DigiToy/FF_norm
 public void select(int eventX, int eventY) {
   for (int i = colorRects.size() - 1; i >= 0; i--) {
     ImageRect rect = colorRects.get(i);
     if (rect.isBelong(eventX, eventY) && rect.getIsDrawable()) {
       colorRects.remove(i);
       colorRects.add(rect);
       recID = rect.getID();
       isSelected = true;
       recentX = eventX;
       recentY = eventY;
       // invalidate();
       return;
     }
   }
 }
コード例 #2
0
ファイル: PuzzleGame.java プロジェクト: DigiToy/FF_norm
    // the method that draws the rectangles
    @Override
    protected void onDraw(Canvas canvas) {
      // canvas.drawBitmap(backgroundImage.getBitmap(), 0, 0, null);
      // canvas.drawBitmap(imgBack.getBitmap(), imgBack.getX(),
      // imgBack.getY(), null);
      //
      // if (AppSettings.soundIsOn) {
      // canvas.drawBitmap(imgSoundOn.getBitmap(), imgSoundOn.getX(),
      // imgSoundOn.getY(), null);
      // } else {
      // canvas.drawBitmap(imgSoundOff.getBitmap(), imgSoundOff.getX(),
      // imgSoundOff.getY(), null);
      // }

      canvas.drawBitmap(imgShow.getBitmap(), imgShow.getX(), imgShow.getY(), null);

      if (isPressedInShow) {
        canvas.drawBitmap(
            frameColorRect.getBitmap(), frameColorRect.getX(), frameColorRect.getY(), null);
      } else {
        canvas.drawBitmap(
            backFrameColorRect.getBitmap(),
            backFrameColorRect.getX(),
            backFrameColorRect.getY(),
            null);
      }
      for (int i = 0; i < colorRects.size(); i++) {

        canvas.drawBitmap(
            colorRects.get(i).getBitmap(),
            colorRects.get(i).getX(),
            colorRects.get(i).getY(),
            null);
      }
      countOfUndragebleImages = 0;
      for (int i = 0; i < colorRects.size(); i++) {
        if (!colorRects.get(i).getIsDrawable()) {
          countOfUndragebleImages++;
        }
      }
      if (countOfUndragebleImages == 12 && gameIsOnProcess) {
        PuzzleGame.this.showWinDialog();
        gameIsOnProcess = false;
      }
    }
コード例 #3
0
ファイル: PuzzleGame.java プロジェクト: DigiToy/FF_norm
 @Override
 protected void onDestroy() {
   super.onDestroy();
   ImageRect.resetCount();
 }
コード例 #4
0
ファイル: PuzzleGame.java プロジェクト: DigiToy/FF_norm
    // events when touching the screen
    public boolean onTouchEvent(MotionEvent event) {
      int eventaction = event.getAction();

      int X = (int) event.getX();
      int Y = (int) event.getY();

      switch (eventaction) {
        case MotionEvent.ACTION_DOWN: // touch down so check if the finger
          // is on
          // a rectangle
          // recID = 0;
          if (imgShow.isBelong(X, Y)) {
            isPressedInShow = true;
          }
          // if (imgBack.isBelong(X, Y)) {
          // // isPressedInBack = true;
          //
          // PuzzleGame.this.finish();
          //
          // }
          // if (imgSoundOn.isBelong(X, Y) || imgSoundOff.isBelong(X, Y))
          // {
          // if (AppSettings.soundIsOn)
          // AppSettings.music.pause();
          // else
          // AppSettings.music.start();
          // AppSettings.soundIsOn = !AppSettings.soundIsOn;
          //
          // }
          for (int i = 0; i < colorRects.size(); i++) {
            if (colorRects.get(i).isBelong(X, Y)) {
              select(X, Y);
              // recID = colorRects.get(i).getID();
              break;
            } else {
              isSelected = false;
            }
          }

          break;

        case MotionEvent.ACTION_MOVE: // touch drag with the rectangle
          // move the rectangles the same as the finger

          currentImg = getImageById(recID);

          if (isSelected) {
            currentImg = getImageById(recID);
            switch (recID) {
              case 3:
                if (Math.abs(currentImg.getX() - frameColorRect.getX()) <= currentImg.getWidth() / 3
                    && Math.abs(currentImg.getY() - frameColorRect.getY())
                        <= currentImg.getHeight() / 2) {
                  currentImg.setX(frameColorRect.getX());
                  currentImg.setY(frameColorRect.getY());

                  if (currentImg.getIsDrawable()) {

                    PuzzleGame.this.playClick();
                    currentImg.setIsDragable(false);
                  }
                }
                break;
              case 4:
                if (Math.abs(currentImg.getX() - frameColorRect.getX() - currentImg.getWidth())
                        <= currentImg.getWidth() / 3
                    && Math.abs(currentImg.getY() - frameColorRect.getY())
                        <= currentImg.getHeight() / 2) {
                  currentImg.setX(frameColorRect.getX() + currentImg.getWidth());
                  currentImg.setY(frameColorRect.getY());
                  if (currentImg.getIsDrawable()) {

                    PuzzleGame.this.playClick();
                    currentImg.setIsDragable(false);
                  }
                }
                break;
              case 5:
                if (Math.abs(currentImg.getX() - frameColorRect.getX() - 2 * currentImg.getWidth())
                        <= currentImg.getWidth() / 3
                    && Math.abs(currentImg.getY() - frameColorRect.getY())
                        <= currentImg.getHeight() / 2) {
                  currentImg.setX(frameColorRect.getX() + 2 * currentImg.getWidth());
                  currentImg.setY(frameColorRect.getY());
                  if (currentImg.getIsDrawable()) {

                    PuzzleGame.this.playClick();
                    currentImg.setIsDragable(false);
                  }
                }
                break;
              case 6:
                if (Math.abs(currentImg.getX() - frameColorRect.getX() - 3 * currentImg.getWidth())
                        <= currentImg.getWidth() / 3
                    && Math.abs(currentImg.getY() - frameColorRect.getY())
                        <= currentImg.getHeight() / 2) {
                  currentImg.setX(frameColorRect.getX() + 3 * currentImg.getWidth());
                  currentImg.setY(frameColorRect.getY());
                  if (currentImg.getIsDrawable()) {

                    PuzzleGame.this.playClick();
                    currentImg.setIsDragable(false);
                  }
                }
                break;
              case 7:
                if (Math.abs(currentImg.getX() - frameColorRect.getX()) <= currentImg.getWidth() / 3
                    && Math.abs(currentImg.getY() - frameColorRect.getY() - currentImg.getHeight())
                        <= currentImg.getHeight() / 2) {
                  currentImg.setX(frameColorRect.getX());
                  currentImg.setY(frameColorRect.getY() + currentImg.getHeight());
                  if (currentImg.getIsDrawable()) {

                    PuzzleGame.this.playClick();
                    currentImg.setIsDragable(false);
                  }
                }
                break;
              case 8:
                if (Math.abs(currentImg.getX() - frameColorRect.getX() - currentImg.getWidth())
                        <= currentImg.getWidth() / 3
                    && Math.abs(currentImg.getY() - frameColorRect.getY() - currentImg.getHeight())
                        <= currentImg.getHeight() / 2) {
                  currentImg.setX(frameColorRect.getX() + currentImg.getWidth());
                  currentImg.setY(frameColorRect.getY() + currentImg.getHeight());
                  if (currentImg.getIsDrawable()) {

                    PuzzleGame.this.playClick();
                    currentImg.setIsDragable(false);
                  }
                }
                break;
              case 9:
                if (Math.abs(currentImg.getX() - frameColorRect.getX() - 2 * currentImg.getWidth())
                        <= currentImg.getWidth() / 3
                    && Math.abs(currentImg.getY() - frameColorRect.getY() - currentImg.getHeight())
                        <= currentImg.getHeight() / 2) {
                  currentImg.setX(frameColorRect.getX() + 2 * currentImg.getWidth());
                  currentImg.setY(frameColorRect.getY() + currentImg.getHeight());
                  if (currentImg.getIsDrawable()) {

                    PuzzleGame.this.playClick();
                    currentImg.setIsDragable(false);
                  }
                }
                break;
              case 10:
                if (Math.abs(currentImg.getX() - frameColorRect.getX() - 3 * currentImg.getWidth())
                        <= currentImg.getWidth() / 3
                    && Math.abs(currentImg.getY() - frameColorRect.getY() - currentImg.getHeight())
                        <= currentImg.getHeight() / 2) {
                  currentImg.setX(frameColorRect.getX() + 3 * currentImg.getWidth());
                  currentImg.setY(frameColorRect.getY() + currentImg.getHeight());
                  if (currentImg.getIsDrawable()) {

                    PuzzleGame.this.playClick();
                    currentImg.setIsDragable(false);
                  }
                }
                break;
              case 11:
                if (Math.abs(currentImg.getX() - frameColorRect.getX()) <= currentImg.getWidth() / 3
                    && Math.abs(
                            currentImg.getY() - frameColorRect.getY() - 2 * currentImg.getHeight())
                        <= currentImg.getHeight() / 2) {
                  currentImg.setX(frameColorRect.getX());
                  currentImg.setY(frameColorRect.getY() + 2 * currentImg.getHeight());
                  if (currentImg.getIsDrawable()) {

                    PuzzleGame.this.playClick();
                    currentImg.setIsDragable(false);
                  }
                }
                break;
              case 12:
                if (Math.abs(currentImg.getX() - frameColorRect.getX() - currentImg.getWidth())
                        <= currentImg.getWidth() / 3
                    && Math.abs(
                            currentImg.getY() - frameColorRect.getY() - 2 * currentImg.getHeight())
                        <= currentImg.getHeight() / 2) {
                  currentImg.setX(frameColorRect.getX() + currentImg.getWidth());
                  currentImg.setY(frameColorRect.getY() + 2 * currentImg.getHeight());

                  if (currentImg.getIsDrawable()) {

                    PuzzleGame.this.playClick();
                    currentImg.setIsDragable(false);
                  }
                }
                break;
              case 13:
                if (Math.abs(currentImg.getX() - frameColorRect.getX() - 2 * currentImg.getWidth())
                        <= currentImg.getWidth() / 3
                    && Math.abs(
                            currentImg.getY() - frameColorRect.getY() - 2 * currentImg.getHeight())
                        <= currentImg.getHeight() / 2) {
                  currentImg.setX(frameColorRect.getX() + 2 * currentImg.getWidth());
                  currentImg.setY(frameColorRect.getY() + 2 * currentImg.getHeight());

                  if (currentImg.getIsDrawable()) {

                    PuzzleGame.this.playClick();
                    currentImg.setIsDragable(false);
                  }
                }
                break;
              case 14:
                if (Math.abs(currentImg.getX() - frameColorRect.getX() - 3 * currentImg.getWidth())
                        <= currentImg.getWidth() / 3
                    && Math.abs(
                            currentImg.getY() - frameColorRect.getY() - 2 * currentImg.getHeight())
                        <= currentImg.getHeight() / 2) {
                  currentImg.setX(frameColorRect.getX() + 3 * currentImg.getWidth());
                  currentImg.setY(frameColorRect.getY() + 2 * currentImg.getHeight());
                  if (currentImg.getIsDrawable()) {

                    PuzzleGame.this.playClick();
                    currentImg.setIsDragable(false);
                  }
                }
                break;
            }
            if (currentImg.getIsDrawable()) {
              getSelected().move(X - recentX, Y - recentY);
              recentX = X;
              recentY = Y;
            }
          }

          break;

        case MotionEvent.ACTION_UP:
          // touch drop - just do things here after dropping
          isPressedInShow = false;

          break;
      }
      // redraw the canvas
      invalidate();
      return true;
    }