Android Open Source - makipong Makipong






From Project

Back to project page makipong.

License

The source code is released under:

GNU General Public License

If you think the Android project makipong 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

/*
 * Makipong, just another Pong clone/*w ww  .j  a  va2 s  .com*/
 * Copyright (C) 2013 Dani Rodrguez
 * 
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 * 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
package tk.makigas.makipong;

import com.badlogic.gdx.ApplicationListener;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.assets.AssetManager;
import com.badlogic.gdx.graphics.GL11;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.scenes.scene2d.Stage;

public class Makipong implements ApplicationListener {
  
  /** El gestor de recursos que usa todo el juego. */
  public static final AssetManager MANAGER = new AssetManager();
  
  /** Escenario donde agruparemos los objetos. */
  private Stage stage;
  
  /** Palas usadas en nuestro juego. */
  private PalaActor pala1, pala2;
  
  /** Bola usada en el juego. */
  private BolaActor bola;
  
  @Override
  public void create() {
    // Antes que nada, preparamos la carga de texturas.
    // TODO: Esto podra moverse a otra parte y optimizarse ms adelante.
    MANAGER.load("bola.png", Texture.class);
    MANAGER.load("paleta.png", Texture.class);
    MANAGER.finishLoading();
    
    // Construimos los elementos que vamos a usar en nuestro juego.
    pala1 = new PalaActor();
    pala1.addListener(new PalaUserInput(pala1));
    pala2 = new PalaActor();
    bola = new BolaActor();
    
    // Posicionamos los objetos en la pantalla. La pelota se sita en el
    // centro de toda la pantalla. Ambas paletas se centran verticalmente,
    // una se alinea a la izquierda y la otra se alinea a la derecha
    // separadas 30 pxeles de los bordes de la pantalla.
    
    // Para centrar cosas en la pantalla simplemente hay que restar el
    // ancho o el alto de la pantalla (segn la coordenada en la que
    // estemos) al ancho o el alto del objeto que pretendamos centrar,
    // y dividir esa resta entre dos. Geomtricamente puede demostrarse
    // esto, que tambin puede expresarse como restar la mitad del ancho
    // o del alto de la pantalla a la mitad del ancho o el alto del objeto.
    int w = Gdx.graphics.getWidth(), h = Gdx.graphics.getHeight();
    pala1.setPosition(30, (h - pala1.getHeight()) / 2);
    pala2.setPosition(w - pala2.getWidth() - 30, (h - pala2.getHeight()) / 2);
    bola.setPosition((w - bola.getWidth()) / 2, (h - bola.getHeight()) / 2);
    
    // Finalmente construimos el escenario y aadimos los actores.
    stage = new Stage();
    stage.addActor(pala1);
    stage.addActor(pala2);
    stage.addActor(bola);
    
    // El escenario es un InputProcessor. Como vamos a gestionar la entrada
    // directamente desde los actores, podemos capturar la entrada usando
    // el escenario directamente.
    Gdx.input.setInputProcessor(stage);
    
    
  }

  @Override
  public void resize(int width, int height) {
    // TODO: Aadir cdigo al escalar el escenario.
  }

  @Override
  public void render() {
    Gdx.gl.glClear(GL11.GL_COLOR_BUFFER_BIT); // Limpiamos la pantalla
//    stage.act();    // Dejamos que el escenario se actualice...
    stage.draw();    // Y lo renderizamos todo.
  }
  
  @Override
  public void pause() {
    
  }

  @Override
  public void resume() {
    
  }

  @Override
  public void dispose() {
    stage.dispose();
    MANAGER.dispose();
  }
}




Java Source Code List

tk.makigas.makipong.BolaActor.java
tk.makigas.makipong.MainActivity.java
tk.makigas.makipong.Main.java
tk.makigas.makipong.Makipong.java
tk.makigas.makipong.PalaActor.java
tk.makigas.makipong.PalaUserInput.java