Sprite tamaño en el tamaño de pantalla diferente Andengine Android

`Estoy desarrollando mi primer juego en Android Adnengine. Es un juego de carreras desde la vista superior. Utilicé el fondo del paralaje y algunos coches. Lo probé en mi dispositivo que es de menor anchura y altura.

Coloqué los coches de con 32 y altura 64 según el ancho de la cámara, altura. Está funcionando bien con mi tamaño de pantalla, pero en tamaños de pantalla más grandes, como el Galaxy Tab, hay un gran espacio que queda en el juego, porque los tamaños de coches siguen siendo los mismos que tengo que usar en 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 según el tamaño de la imagen con diferentes anchos y alturas 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ños, grandes 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; } 

La cosa sobre usar una política de la resolución de la proporción es que usted puede diseñar su juego a un tamaño particular dice 800×480 que es muy popular para los teléfonos actualmente.

Creo que donde la mayoría de la gente se desvía está pensando que necesitan para tirar de la pantalla actual de ancho / altura y utilizarlo para inicializar el motor.

El punto de una política de resolución de relación, como yo lo entiendo, es que usted establece sus dimensiones en valores codificados y deja que la política de resolución de proporciones 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 que hagas cosas como esta, entonces solo necesitas asegurarte de que tus gráficos y espaciado se vean bien en tu ancho / altura elegidos previamente – en este ejemplo 800 x 480. Si todo funciona y se ajusta y se ve bien, entonces la política de resolución de relación Cuidar de las cosas cuando el dispositivo tiene un tamaño de pantalla diferente.

Por lo menos que mi toma en cómo debe trabajar – escribo para 800 x 480 y todo parece bueno en mi tablilla 7 "también – concedió que no es un estiramiento importante.

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

Espero que ayude.

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

Elige una alta resolución para cada relación y deja que el motor disminuya si el tamaño de la pantalla del dispositivo es menor.

  • Trabajar con nuevo AndEngine
  • Servicios de Google Play no disponibles debido al error 2
  • Desplazamiento de un childscene en AndEngine
  • SharedPreference Cambios no reflejados en mi servicio de fondo de pantalla
  • Cargando en segundo plano - AndEngine GLES2
  • ¿Cómo pausar y reanudar el juego andengine?
  • Y la actividad del motor bg no encaja en la pantalla
  • ¿Dónde está la documentación para "AndEngine"?
  • Eliminar un objeto cuando ocurre una colisión
  • Problema con la orientación de la pantalla de Android
  • No se puede exportar la aplicación de Android en Eclipse
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.