2012-07-09 14 views
11

`Estoy desarrollando mi primer juego en Android Adnengine. Es un juego de carreras desde la vista superior. Usé el fondo de paralaje y algunos autos. Lo probé en mi dispositivo, que es de menor ancho y alto.Tamaño del Sprite en diferentes tamaños de pantalla Andengine Android

He colocado los automóviles de 32 y 64 de acuerdo con el ancho y la altura de la cámara. Funciona bien con el tamaño de mi pantalla pero en pantallas de mayor tamaño, como el Galaxy Tab, hay un espacio enorme en el juego, porque el tamaño de los autos es el mismo que el que tengo para usarlos con el poder de dos.

¿Cómo puedo usar imágenes que se ajusten a todos los tamaños de pantalla? ¿Tengo que usar diferentes imágenes de acuerdo con el tamaño de la imagen con diferente ancho y altura de la cámara? Estoy seguro de que hay una solución para esto.

Ya he modificado mi archivo de manifiesto para admitir tamaños pequeño, grande y xlarge.

public Engine onLoadEngine() { 

    final Display display = getWindowManager().getDefaultDisplay(); 
    CAMERA_WIDTH = display.getWidth(); 
    CAMERA_HEIGHT = display.getHeight(); 

    //Toast.makeText(getApplicationContext(), CAMERA_WIDTH, 3); 

    mCamera = new Camera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT); 
    engine = new Engine(new EngineOptions(true, 
      ScreenOrientation.LANDSCAPE, new RatioResolutionPolicy(
        CAMERA_WIDTH, CAMERA_HEIGHT), mCamera).setNeedsMusic(
      true).setNeedsSound(true)); 

    return engine; 
} 
+0

si va a usar una RatioResolutionPolicy cuando inicie el motor, se llevará de eso para usted – jmroyalty

+0

Acabo de editar mi Pregunta con mi Código ¿me pueden ayudar más? Estoy utilizando RatioResolutionPolicy. –

Respuesta

14

Lo importante de usar una política de resolución de proporción es que puedes diseñar tu juego a un tamaño particular, digamos 800x480, que es muy popular en la actualidad para teléfonos.

Creo que la mayoría de las personas que están perdidas está pensando que necesitan extraer el ancho/alto actual de la pantalla y usarlo para inicializar el motor.

El punto de una política de resolución de proporción, tal como yo lo entiendo, es establecer las dimensiones de los valores codificados y permitir que la política de resolución de proporción maneje las diferencias de un dispositivo al siguiente.

CAMERA_WIDTH = 800; 
CAMERA_HEIGHT = 480; 

//Toast.makeText(getApplicationContext(), CAMERA_WIDTH, 3); 

mCamera = new Camera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT); 
engine = new Engine(new EngineOptions(true, 
     ScreenOrientation.LANDSCAPE, new RatioResolutionPolicy(
       CAMERA_WIDTH, CAMERA_HEIGHT), mCamera).setNeedsMusic(
     true).setNeedsSound(true)); 

Una vez hecho este tipo de cosas, entonces usted sólo tiene que asegurarse de que sus gráficos y el espaciamiento se ven bien en su pre elegido anchura/altura - en este ejemplo 800 x 480. Si todo funciona y se ajusta y se ve bien , entonces la política de resolución de proporción se ocupará de las cosas cuando el dispositivo tenga un tamaño de pantalla diferente.

Al menos que mi opinión sobre cómo debería funcionar - Escribo para 800 x 480 y todo se ve bien en mi tableta de 7" también - sentado que no es un tramo importante

+0

He probado un fondo de alta resolución para la escena del juego (1240x840) con la cámara 800x480, el fondo parece recortado. Por lo tanto, no entiendo cómo funciona bien para –

+0

por lo tanto, dale la vuelta - escribe para la resolución más alta usando una cámara de 1240x840 y deja que AndEngine se ocupe de los dispositivos más pequeños. Como dije, escribo para 800x480 pero mi tableta es solo 1280x800 – jmroyalty

+0

Según mi ver, usar la cámara con una resolución de 1024x600. Funciona bien con un dispositivo pequeño y de alta resolución. – Siddharth

3

buscar la altura del dispositivo y el ancho y luego algebraicamente hacer el sprite un porcentaje de la anchura de la pantalla y la altura.

Espero que ayude.

+0

Hasta ahora solo encuentro esta solución. –

0

De acuerdo con mi experiencia, creo. que la mejor manera de atacar este problema es lidiar con dos relaciones de pantalla principales (5: 4, 5: 3) que son populares en la mayoría de los dispositivos.

Elija una resolución alta para cada relación y deje que el motor reduzca la escala si el tamaño de la pantalla del dispositivo es más pequeño.

+0

el tamaño de la cámara debe ser como el tamaño de la pantalla. –

Cuestiones relacionadas