Autor Tema: Preguntas basicas desarrollo Android  (Leído 4613 veces)

Comandante

  • Jr. Member
  • **
  • Mensajes: 50
  • Karma: 1
Preguntas basicas desarrollo Android
« en: Abril 13, 2014, 04:54:43 pm »
Hola,
Ante todo disculparme por abrir un hilo que seguro este repleto de preguntas mil veces contestadas,pero o yo no se buscar bien o no se que pasa.
Os cuento,yo soy un antiquisimo usuario de div2 desde su salida,luego le di lo suyo a Fenix,y ultimamente me ha entrado el gusanillo de hacer
cosillas y he dado con bennugd.
Me gustaria intentar crear alguna frikada para android pero por mas que busco no doy con un tutorial de controles tactiles "for dummies".
He probado muchos ejemplos y no me funcionan,he logrado sacar en la pantalla de mi movil un sprite y texto,pero no tengo ni la mas remota idea
de hacer que la pantalla tactil funcione como "un raton",es decir,que detecte las coordenadas donde tocas.
Despues,me gustaria saber como hacer para que la resolucion funcione en la mayoria de dispositivos,si existe algun tipo de escalado etc.

Eso es todo de momento,un saludo!

Comandante

  • Jr. Member
  • **
  • Mensajes: 50
  • Karma: 1
Re:Preguntas basicas desarrollo Android
« Respuesta #1 en: Abril 14, 2014, 01:25:11 pm »
Perdón por el doble post,
He logrado manejar con la pantalla tactil el juego,pero tengo estos problemas.
1-Al salir del juego con el botón home del movil el juego sigue rulando de fondo,buscando he dado con lo de focus_status para controlar si queda el juegoo en segundo plano pero no me compila,pone que no reconoce la variable focus_status.
2-Si pulso para subir o bajar el volumen,o la tecla return del movil,el juego se bloquea.

Un saludo.

Erkosone

  • Hero Member
  • *****
  • Mensajes: 930
  • Karma: 51
Re:Preguntas basicas desarrollo Android
« Respuesta #2 en: Abril 15, 2014, 12:07:06 pm »
Hola Comandante, anoche leí el post pero andaba por el curro con el mobil y no tenía códigos de ejemplo a mano para comentarte.


Sobre el tema del reescalado, está chupado, lo primero que tienes que hacer es averiguar la resolución real a la que está trabajando el dispositivo android, esto se hace así:



Begin
    // Get the real screen resolution we're running at
    width = graphic_info(0, 0, G_WIDTH);
    height = graphic_info(0, 0, G_HEIGHT);
    // Set scale_resolution to width/2xheight/2
    scale_resolution = width*10000+height;
    scale_resolution_aspectratio=SRA_PRESERVE;
    set_mode(320, 480, 16);




Presta atención al detalle de que no debes ejecutar ningún SET_MODE() antes de averiguar la resolución real.


PASO 1:
Con la función graphic_info() recojes el ancho y alto reales y los guardas en las variables GLOBALES width y height.


PASO 2:
Preparas el sistema de escalado a esa resolución real, esto se hace teniendo en cuenta que el valor que tienes que indicar para el escalado debe corresponderse a un formato de número un poco particular, se indica tanto el ancho como el alto en una sola cifra, sin entrar en demasiados detalles te sirve con saber que mediante la formula: width*1000+height obtienes el valor que necesitas indicar, así que no hace falta nada mas que indicarle a scale_resolution esa pequeña operación.


También debes indicar el aspectRatio, hay varias opciones, pasate por la wiki para ver cuales son, pero para teléfonos o tablets en general te servirá perfectamente con sra_preserve que indica que se mantenga el aspect ratio de la resolución original del dispositivo, aunque si tu juego usa resoluciones no panorámicas puede verse deformado, debes acostumbrarte a programar para android en panorámico, ya que el 99% de los disp. trabajan con resoluciones y pantallas alargadas y no cuadradas.


Y finalmente PASO 3:
Ejecutar tu SET_MODE() a la resolucion nativa a la que va a trabajar tu juego.




Un buen sistema de trabajo es crear una variable GLOBAL llamada ANDROID_RELEASE = FALSE;
Entonces mientras estás desarrollando el juego en windows la tienes en false, y metes las lineas de código del escalado dentro de algo así:


if(android_release == true)
..
..
..
end


De esta manera cuando desees exportar a android simplemente cambias el valor a true, compilas y listo, envías el juego al disp.

emov2k4

  • Full Member
  • ***
  • Mensajes: 227
  • Karma: 4
Re:Preguntas basicas desarrollo Android
« Respuesta #3 en: Abril 15, 2014, 01:07:48 pm »
El escalado en Android es automatico, no es necesario hacerlo.

Para saber en que sistema operativo o plataforma estas utiliza el OS Code
http://wiki.bennugd.org/index.php?title=OS_codes

Si quiero que un codigo se ejecute solo en windows por ejemplo el puntero del mouse para saber donde esta y no se muestre en android ya que seria el dedo, hago lo siguiente

Código: [Seleccionar]
if(os_id==0) mouse.graph=22; end
Por lo que no es necesario el android_release de Erkosone

Erkosone

  • Hero Member
  • *****
  • Mensajes: 930
  • Karma: 51
Re:Preguntas basicas desarrollo Android
« Respuesta #4 en: Abril 15, 2014, 01:26:53 pm »
Vaya, eso no lo sabía, gracias por la aclaración ;)

Comandante

  • Jr. Member
  • **
  • Mensajes: 50
  • Karma: 1
Re:Preguntas basicas desarrollo Android
« Respuesta #5 en: Abril 15, 2014, 05:07:29 pm »
Muchas gracias por las respuestas.
A mi no me escala automáticamente,probare ese código.
Por cierto tampoco me reconoce mouse.left,mouse.x etc como tactil en android.
Sigo un poco confuso con los controles.
Y lo qué más quebraderos de cabeza me da ahora es que de error de compilación con focus_status y qué se bloquee la aplicación si doy a cualquier botón físico del móvil(subir o bajar volumen etc)

Erkosone

  • Hero Member
  • *****
  • Mensajes: 930
  • Karma: 51
Re:Preguntas basicas desarrollo Android
« Respuesta #6 en: Abril 16, 2014, 06:15:16 am »
Hola Comandante, a mi tampoco me escala automáticamente, por eso lo comenté, pero quizá haya que hacer algo para que escale, aunque con ese código te funcionará bien.


Sobre los controles, es bastante fácil, has de incluir en tu programa las librerías mod_multi y mod_mouse, la mas simple de todas es la del mouse, te dejo un código de ejemplo muy util que me pasó josebita y la lib fakeada para windows "mod_sensor" para que puedas compilar sin problemas.


Todo esto irá en vídeo tutoriales que estoy montando pero estos días ando a tope de trabajo y me está costando ponerme unas horas a terminarlos..




emov2k4

  • Full Member
  • ***
  • Mensajes: 227
  • Karma: 4
Re:Preguntas basicas desarrollo Android
« Respuesta #7 en: Abril 16, 2014, 12:11:19 pm »
Para compilar a android  yo utilizo la plantilla de pixel !! y no el packager de Joseba.

En la ultima version de Bennu si escala automaticamente, necesitan actualizar ya que corrige muchas cosas.

Erkosone

  • Hero Member
  • *****
  • Mensajes: 930
  • Karma: 51
Re:Preguntas basicas desarrollo Android
« Respuesta #8 en: Abril 16, 2014, 12:21:05 pm »
Yo uso esa misma versión de bennu pero con el packager.

josebita

  • Administrator
  • *****
  • Mensajes: 4039
  • Karma: 257
    • BennuGD Mobile Worklog
Re:Preguntas basicas desarrollo Android
« Respuesta #9 en: Abril 16, 2014, 10:28:12 pm »
Yo uso esa misma versión de bennu pero con el packager.
Si el código Java no es el mismo, es normal que el juego se cuelgue cuando pasan según qué eventos.
Por eso recomiendo usar la plantilla de Pixel.

No tengo el tiempo necesario para mantener el packager actualizado.

Comandante

  • Jr. Member
  • **
  • Mensajes: 50
  • Karma: 1
Re:Preguntas basicas desarrollo Android
« Respuesta #10 en: Abril 22, 2014, 12:58:42 pm »
Hola Comandante, a mi tampoco me escala automáticamente, por eso lo comenté, pero quizá haya que hacer algo para que escale, aunque con ese código te funcionará bien.


Sobre los controles, es bastante fácil, has de incluir en tu programa las librerías mod_multi y mod_mouse, la mas simple de todas es la del mouse, te dejo un código de ejemplo muy util que me pasó josebita y la lib fakeada para windows "mod_sensor" para que puedas compilar sin problemas.


Todo esto irá en vídeo tutoriales que estoy montando pero estos días ando a tope de trabajo y me está costando ponerme unas horas a terminarlos..

Nada,el raton no me lo coge como tactil en android,y el mod_sensor que has puesto si lo utilizo y con el packager de Josebita creo la apk no funciona,sale de la aplicacion al momento.
He intentado usar la pixplantilla pero por lo visto hay que tener un master porque aun siguiendo el tutorial que hay en el foro no logro nada xD

EDITO:Vale bien,ya he logrado hacer funcionar la plantilla y ahora si va la pantalla tactil como raton etc :)
« última modificación: Abril 22, 2014, 02:42:09 pm por Comandante »

Erkosone

  • Hero Member
  • *****
  • Mensajes: 930
  • Karma: 51
Re:Preguntas basicas desarrollo Android
« Respuesta #11 en: Abril 22, 2014, 05:06:10 pm »
Que problema te da el packager? recuerda que para que el entorno funcione la carpeta que contiene el zip llamada devBennu debe estar en la raiz de la unidad c:


Yo uso el packager en vez de la pixPlantilla por que no me obliga a meter los archivos con una estructura de directorios concreta, programo las aplicaciones a mi estilo propio sin preocuparme de donde va esto o donde va lo otro y con un click me lo instala en el mobil sin errores.

Erkosone

  • Hero Member
  • *****
  • Mensajes: 930
  • Karma: 51
Re:Preguntas basicas desarrollo Android
« Respuesta #12 en: Abril 22, 2014, 05:09:15 pm »
El link a la descarga del entorno que uso en los vídeo tutoriales es este, solo dejalo en la c:\ y ejecuta el notepad que trae para programar.
https://dl.dropboxusercontent.com/u/65979707/bennuGD/ANDROID/devBennu.7z

Comandante

  • Jr. Member
  • **
  • Mensajes: 50
  • Karma: 1
Re:Preguntas basicas desarrollo Android
« Respuesta #13 en: Abril 22, 2014, 06:30:21 pm »
Que problema te da el packager? recuerda que para que el entorno funcione la carpeta que contiene el zip llamada devBennu debe estar en la raiz de la unidad c:


Yo uso el packager en vez de la pixPlantilla por que no me obliga a meter los archivos con una estructura de directorios concreta, programo las aplicaciones a mi estilo propio sin preocuparme de donde va esto o donde va lo otro y con un click me lo instala en el mobil sin errores.

Con el packager no me iba la pantalla tactil con mouse.left etc y no escalaba la pantalla...

Aun asi despues de la primera vez que me ha funcionado,a la segunda vez que he utilizado exportar_android.bat en la plantilla sale la pantalla en negro y no hay forma...
Por si habia cambiado algo he borrado todo el contenido del .prg y he puesto un hello world simple y nada...pantalla en negro...no se porque la primera vez ha funcionado y ya a partir de la segunda nada ???

EDITO: Vale,he probado el packager con un Xperia Ray y si funciona la tactil como raton y demas,sin embargo los controles tactiles no me funcionan en el s4 mini :-\
« última modificación: Abril 22, 2014, 09:07:02 pm por Comandante »

Comandante

  • Jr. Member
  • **
  • Mensajes: 50
  • Karma: 1
Re:Preguntas basicas desarrollo Android
« Respuesta #14 en: Abril 25, 2014, 08:04:10 pm »
Nada,si me va en todos los moviles que he probado con el packager de Joseba,eso si,despues de instalar el sdk de Java no se si tendrá que ver :P
Ya lo tengo mas o menos "setupeado" para desarrollar agusto,gracias por las respuestas chavales. :D