Back to project page jmjuanesFramework.
The source code is released under:
MIT License
If you think the Android project jmjuanesFramework listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
package jmjuanes; /*w ww . ja v a 2 s . com*/ import java.util.ArrayList; import jmjuanes.core.GameData; import jmjuanes.core.GameFrames; import jmjuanes.core.GameTouch; import jmjuanes.core.GameView; import android.annotation.SuppressLint; import android.app.Activity; import android.content.Intent; import android.graphics.Canvas; import android.net.Uri; import android.os.Bundle; import android.view.MotionEvent; import android.view.Window; import android.view.WindowManager; public abstract class GameMain extends Activity { //Screen actual public String screen_actual = ""; //Array de Screens public ArrayList<MyScreen> screen; //Screen inicial public String screen_loading = ""; //Screen menu public String screen_menu = ""; //View public GameView view; //Touch public GameTouch Touch; //Record public GameData Data; //Puntuacion public int score = 0; @Override protected void onCreate(Bundle savedInstanceState) { //Constructor super.onCreate(savedInstanceState); //Sin titulo requestWindowFeature(Window.FEATURE_NO_TITLE); //No se apague la pantalla getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); //Pantalla completa getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); //Iniciamos el array de screens screen = new ArrayList<MyScreen>(); //Inciamos el touch Touch = new GameTouch(); //Iniciamos el record Data = new GameData(this); //Iniciamos el view view = new GameView(this, this); setContentView(view); } public void onPause() { super.onPause(); //Detenemos la screen ScreenGetActual().Stop(); //Pausamos el bucle ThreadStop(); } public void ResumeView() { //Iniciamos de nuevo la screen actual ScreenGetActual().Resume(); //Iniciamos el bucle ThreadStart(); } //Para abrir una ventana del navegador public void OpenWeb(String url) { Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); startActivity(browserIntent); } //Funcion que detiene el bucle public void ThreadStop() { //Paramos el thread view.ThreadStop(); } //Funcion que inicia el bucle public void ThreadStart() { //Arrancamos el thread view.ThreadStart(); } //Funcion que se activa al hacer touch @SuppressLint("ClickableViewAccessibility") @Override public boolean onTouchEvent(MotionEvent event) { //Cogemos la posicion int x = (int) event.getX(); int y = (int) event.getY(); //Caso de que solo haya pulsado if(event.getAction() == MotionEvent.ACTION_DOWN && Touch.Status() == true) { ScreenGetActual().TouchDown(x, y); } //Caso de que este manteniendo else if(event.getAction() == MotionEvent.ACTION_MOVE && Touch.Status() == true) { ScreenGetActual().TouchMove(x, y); } //Caso de que levante el dedo else if(event.getAction() == MotionEvent.ACTION_UP && Touch.Status() == true) { ScreenGetActual().TouchUp(x, y); } return true; } //Funcion que manda a dibujar a la screen correspondiente public void Draw(Canvas canvas) { //Comprobamos que la screen actual no sea nula if(screen_actual != "") { //Mandamos a dibujar a la screen ScreenGetActual().Draw(canvas); } } //Clase para las screens class MyScreen { //Nombre de la screen public String name; //Screen public Screen screen; //Constructor public MyScreen(String n, Screen s) { //Guardamos el nombre de la screen this.name = n; //Guardamos la screen this.screen = s; } //Funcion que devuelve el nombre public String GetName() { return this.name; } //Funcion que devuelve la screen public Screen GetScreen() { return this.screen; } } //Funcion que crea una nueva screen public void ScreenCreate(String name, Screen screen) { //Lo sumamos al array this.screen.add(new MyScreen(name, screen)); } //Funcion que establece la screen inicial public void ScreenSetLoading(String name) { //Lo guardamos this.screen_loading = name; } //Funcion que establece la screen del menu public void ScreenSetMainMenu(String name) { //Lo guardamos this.screen_menu = name; } //Funcion que devuelve una screen concreta public Screen ScreenGet(String name) { //Recorremos el array for(int i = 0; i < screen.size(); i++) { //Comprobamos si coincide if(name == screen.get(i).name) { //Lo devolvemos return screen.get(i).screen; } } //Devolvemos null return null; } //Funcion que devuelve la screen actual public Screen ScreenGetActual() { //Cogemos el actual return ScreenGet(screen_actual); } //Funcion que abre una nueva screen public void ScreenOpen(String name) { //Cogemos la screen actual y detenemos el bucle ScreenGetActual().Stop(); //Detenemos el bucle ThreadStop(); //Iniciamos la nueva screen screen_actual = name; //Iniciamos las variables ScreenGetActual().Start(); //Iniciamos el bucle si estaba parado ThreadStart(); } //Funcion que inicia las screens public abstract void Screens(); //funcion que establece los frames public void SetFrames(int fps) { //Cogemos el tiempo necesatio view.thread_time = GameFrames.GetTime(fps); } }