Necesito ayuda con un juego 2D

  • Respuestas:1
leviatan
  • Posts del Foro: 2

15 feb. 2016 21:05:19 vía Web

Buenas a todos.

Tengo que entregar un proyecto para un ciclo superior de programación que consiste en un juego básico 2D para android. Lo tengo casi acabado, pero hay un par de cosas que no soy capaz de hacer y llevo días intentando. Una, que el juego reescale bien en dispositivos con resoluciones diferentes, cuando cambia la resolución del dispositivo se vuelve un caos toda la colocación y tamaño de las imagenes. Dos, añadir un botón a la pantalla de juego que lo pause y otro para salir. He probado ambas cosas de mil maneras y es imposible. Seguro que cualquier programador con cierta experiencia lo resuelve en 5 minutos :S. Por favor, tengo que entregarlo en los próximos días. El plan sería que yo les pasaría el proyecto, lo revisarían y me lo mandarían de vuelta. Es que ya no se que hacer . Incluso pago algo con paypal si hace falta...

Un saludo y gracias de antemano.

Contestar
Aaron J. Reyes
  • Posts del Foro: 3

17 mar. 2016 20:46:42 vía Web

Quizá un par de ideas te puedan servir, En cuanto a la escalar las imágenes según las dimensiones del dispositivo recuerda que se considera una buena práctica el colocar las imágenes en valor %, osea en proporción según el tamaño de la pantalla, NO con valores absolutos, en este caso si necesitas colocar una imagen en la esquina y que la misma tenga una dimensión de 1/3 de largo por 1/4 de ancho de la pantalla, primero deberás averiguar el ancho y alto de la misma, ese resultado lo divides entre tres y cuatro(ancho y alto)y le asignas ese valor a tu imagen, si el largo de la pantalla varia la imagen siempre tendrá una misma proporción de largo y alto. (esto si ingresas las imágenes por código, si las ingresas directamente al layout xml encargado de la vista es diferente, pero por lo general yo lo manejo así, de otro modo tendrás que jugar con el peso(weight) de cada componente ) .

En cuanto a detener el juego con un botón, solo decirte que esto por lo general se eralzia desde el iniciod el proyecto, si lo haces a estas alturas quiza te cueste un poco más, detener el juego es simplemente detener la movilidad de todos los objetos implicados en el, por lo general en un archivo Gamemanager(encargado de administrar el juego) puedes crear una variable de nombre velocidad(tambien la peudes hacer un valor boleano si ningún objeto en el juego se acelera), y a este le das un valor default de 1. Luego, a cada objeto que instancies en eljuego(ueljugador, los enemigos, el dezplazamiento de las balas, ect) le pones un atributo de velocidad relativo a esta variable guardaba en el game manager,

por ejemplo si la velocidad del protagonista es dos veces la velocidad de los enemigos entonces cundo calcules la velocidad de dezplazamiento de tu personaje simplemente lo multiplicaspor dos,al igual que la de los enemigos lo multiplicas por 1, pero, AQUI VIENE LA RESPUESTA) si al preconar un botón yo modifico el valor de la variable velocidad a 0, todo se va multiplicar por 0, lo que va hacer que nada se desplace, de igual modo si tienes un "timer" o algo por el estilo lo metes entre un condicional if(velocidad>0){//instrucciones del timer} de ese modo cuando la velocidad sea 0 también se va a detener el "timer"

para cerrar la app tienes que primero finalizarla y luego la cierras, aquí te dejo las dos partes de código(si estas trabajando en Andoir estudio, eclipse o netbeans, ni estas en otro IDE me avisas)

//Esto va dentro del archivo de script que estes utilizando

Button btn1 = (Button) findViewById(R.id.btn1);
btn1.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
                 finish();
        System.exit(0);
    }
});

//esto va dentro del layout donde tienes la vista del botón

<Button android:layout_width="fill_parent"
android:layout_height="wrap_content" android:id="@+id/botonCerrar"
android:text="Cerrar" />

Contestar