Android Open Source - TicTacToe3D T T T3d Controller






From Project

Back to project page TicTacToe3D.

License

The source code is released under:

MIT License

If you think the Android project TicTacToe3D listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.unibh.dcet.ccc.android.tictactoe3d;
/*from   w w w .j a v  a 2 s .  c om*/
import android.content.Context;
import android.opengl.GLSurfaceView;
import android.view.MotionEvent;

/**
 * Implement a simple rotation control.
 *
 */
class TTT3dController extends GLSurfaceView {

  // vari?veis de controle do jogo
  private final float TOUCH_SCALE_FACTOR = 180.0f / 320;
  private final float TRACKBALL_SCALE_FACTOR = 36.0f;
  private TTT3dView mRenderer;
  private TTT3dModel jogo;
  private float mPreviousX;
  private float mPreviousY;
  
  public TTT3dController(Context context, TTT3dModel gameModel) {
    super(context);
    jogo = gameModel;
    // cria objeto de renderiza??o
    mRenderer = new TTT3dView(jogo);
    // configura objeto de renderiza??o
    setRenderer(mRenderer);
    setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY);
  }

  @Override public boolean onTrackballEvent(MotionEvent e) {
    jogo.addAxisXAngle(e.getX() * TRACKBALL_SCALE_FACTOR);
    jogo.addAxisYAngle(e.getY() * TRACKBALL_SCALE_FACTOR);
    requestRender();
    return true;
  }

  /**
   * Modifica os angulos de rota??o pela entrada de eventos
   */
  private void rotate(float x, float y) {
    float dx = x - mPreviousX;
    float dy = y - mPreviousY;
    jogo.addAxisXAngle(dy * TOUCH_SCALE_FACTOR);
    jogo.addAxisYAngle(dx * TOUCH_SCALE_FACTOR);
    requestRender();
  }

  /**
   * Controle de eventos de mudan?a de estado do jogo
   */
  @Override public boolean onTouchEvent(MotionEvent e) {
    float x = e.getX();
    float y = e.getY();
    mRenderer.setMousePos((int)x, (int)y);
    switch (e.getAction()) {
    case MotionEvent.ACTION_UP:
      if (jogo.setPlayMode()) {
        requestRender();
      };
      break;
    case MotionEvent.ACTION_DOWN:
      jogo.setPickMode();
      requestRender();
      break;
    case MotionEvent.ACTION_MOVE:
      int gameState = jogo.getMode();
      if (gameState == TTT3dModel.ROTATION) {
        rotate(x, y);
        requestRender();
      } else if (gameState == TTT3dModel.SELECT) {
        requestRender();
      }
      break;
    }
    mPreviousX = x;
    mPreviousY = y;
    return true;
  }


}




Java Source Code List

com.unibh.dcet.ccc.android.tictactoe3d.TTT3dActivity.java
com.unibh.dcet.ccc.android.tictactoe3d.TTT3dController.java
com.unibh.dcet.ccc.android.tictactoe3d.TTT3dModel.java
com.unibh.dcet.ccc.android.tictactoe3d.TTT3dView.java
com.unibh.dcet.ccc.android.tictactoe3d.ai.ArtificialInteligence.java
com.unibh.dcet.ccc.android.tictactoe3d.ai.DotAI.java
com.unibh.dcet.ccc.android.tictactoe3d.ai.Dot.java
com.unibh.dcet.ccc.android.tictactoe3d.ai.Environment.java
com.unibh.dcet.ccc.android.tictactoe3d.ai.Line.java
com.unibh.dcet.ccc.android.tictactoe3d.view.Circle.java
com.unibh.dcet.ccc.android.tictactoe3d.view.Cylinder.java
com.unibh.dcet.ccc.android.tictactoe3d.view.Grid.java
com.unibh.dcet.ccc.android.tictactoe3d.view.TTT3dBoard.java
com.unibh.dcet.ccc.android.tictactoe3d.view.TTT3dDrawable.java
com.unibh.dcet.ccc.android.tictactoe3d.view.TTT3dGridShape.java
com.unibh.dcet.ccc.android.tictactoe3d.view.TTT3dLine.java
com.unibh.dcet.ccc.android.tictactoe3d.view.TTT3dOShape.java
com.unibh.dcet.ccc.android.tictactoe3d.view.TTT3dSquareShape.java
com.unibh.dcet.ccc.android.tictactoe3d.view.TTT3dViewSelector.java
com.unibh.dcet.ccc.android.tictactoe3d.view.TTT3dXShape.java
com.unibh.dcet.ccc.android.tictactoe3d.view.obsolete.Sphere.java
com.unibh.dcet.ccc.android.tictactoe3d.view.obsolete.TTT3dOShape.java
com.unibh.dcet.ccc.android.tictactoe3d.view.obsolete.TTT3dXShape2.java
com.unibh.dcet.ccc.android.tictactoe3d.view.obsolete.TTT3dXShape.java