Yo soy partidario de utilizar la función "getWidht" y "getHeight" de la clase Graphics, y pegar los gráficos de manera relativa a los bordes de la pantalla (restando al tamaño la distancia o sumandosela a 0). Aunque muchos profesionales de los videojuegos directamente definen una constante SCREEN_WIDTH y SCREEN_HEIGHT, substituyendo la llamada a la función, y teniéndola que cambiar para cada uno de los móviles a los que se quiere adaptar el juego. Esto es debido a que muchos modelos de móvil no implementan la función "getWidth" y "getHeight" (simplemente retornan 0), y también debido a que es más rápido acceder a una constante que a una función (esos pocos ciclos pueden llegar a notarse en un movil lento). Mi consejo es que definas dos variables, y las rellenes al crear el canvas:
int scrWidth = graphics.getWidth(); int scrHeight = graphics.getHeight();
Y pegues las imágenes relativas a estas coordenadas, por ejemplo, para poner una imagen pegada a la derecha de la pantalla, centrada verticalmente:
Prepárate para el infierno de las resoluciones y configuraciones de los móviles:P. Conseguir que funcione el juego en uno no implica que funcione en otro sin cambios mayores. Y, como comentas, el mayor problema es adaptar la resolución.
Puedes usar SVG para los móviles que implementen JSR-226 (no te sabría decir ahora mismo cuales exactamente, creo que los S60 3 edición trae este API).Pero te reduce el conjunto de móviles compatibles.
Lo mejor es hacerte varios gráficos que valgan para las resoluciones más populares: 128x128, 128x160, 178x224, 240x230 y 320x240. Y no te olvides de tratar de usar coordenadas relativas en vez de absolutas, es decir, que cada vez que trates de acceder a un punto de la pantalla, lo hagas siempre en proporción a su tamaño, y no a una coordenada expresada como constante (aunque a veces no conviene, porque puede hacerse el cálculo engorroso).
--
Señoría, solicito que me expulsen del colegio de abogados por presentar pruebas contra mi cliente. Hiperpollo
Sí, la programación depende mucho del dispositivo, ya que no todos implementan el 100% de las funcionalidades de CLDC y MIDP. Algunos no tienen siquiera recolector de basura. Lo habitual en los profesionales es crear una versión máster para cada gama (baja, media, alta), y a partir de ahí ir versionando una a una a cada modelo de móvil.
Depende
(Puntos:2)( http://todoa99.blogspot.com/ | Última bitácora: Lunes, 20 Abril de 2009, 22:41h )
Mi consejo es que definas dos variables, y las rellenes al crear el canvas:
int scrWidth = graphics.getWidth();
int scrHeight = graphics.getHeight();
Y pegues las imágenes relativas a estas coordenadas, por ejemplo, para poner una imagen pegada a la derecha de la pantalla, centrada verticalmente:
graphics.dragImage(img,scrWidth,scrHeight>>1,Grap
Respuesta corta: No se puede.
(Puntos:2)( http://barrapunto.com/ | Última bitácora: Lunes, 09 Junio de 2008, 21:27h )
Puedes usar SVG para los móviles que implementen JSR-226 (no te sabría decir ahora mismo cuales exactamente, creo que los S60 3 edición trae este API).Pero te reduce el conjunto de móviles compatibles.
Lo mejor es hacerte varios gráficos que valgan para las resoluciones más populares: 128x128, 128x160, 178x224, 240x230 y 320x240. Y no te olvides de tratar de usar coordenadas relativas en vez de absolutas, es decir, que cada vez que trates de acceder a un punto de la pantalla, lo hagas siempre en proporción a su tamaño, y no a una coordenada expresada como constante (aunque a veces no conviene, porque puede hacerse el cálculo engorroso).
Señoría, solicito que me expulsen del colegio de abogados por presentar pruebas contra mi cliente. Hiperpollo
Referiendome a la segunda pregunta
(Puntos:2)( http://todoa99.blogspot.com/ | Última bitácora: Lunes, 20 Abril de 2009, 22:41h )