Preguntas de novato de Pixtudio y Android

Started by Drumpi, November 09, 2016, 12:49:51 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Drumpi

Hola a todos:

Pues me ha surgido una idea para desarrollar en teléfonos Android, así que, ya que estamos, aprovechamos y metemos PixTudio en el paquete.
Tranquilos que no es un megaproyecto de la leche, es sólo una pequeña aplicación de preguntas y respuestas que me va a venir de miedo para estudiar.

Así que mi primera decisión ha sido usar PixTudio. Y como ando un poco pez en el lenguaje, utilidades y compiladores/exportadores, sin que sirva de precedente voy a usar directamente el PixTudio Pack :D :D (segunda decisión, pero no te emociones, L1nk, que cuando sepa lo que necesito borro y me cojo las herramientas sueltas :D).

Bien, pues antes de empezar, necesito saber unos detalles (el tema de desarrollo, compilación y exportación lo dejaré para cuando haya visto el PixPack):
- El juego va a ser de preguntas y respuestas: pregunta arriba, respuestas abajo. Quiero usar el móvil en vertical, pero ¿qué resolución me recomendais como nativa? Sé que puedo reescalar con scale_resolution, y hay la tira de resoluciones, pero quisiera saber si hay una resolución que se considere la menos mala, o si tengo que pensar el programa para varias resoluciones y que se adapte al tamaño (lo cual puede ser problemático por el tema de las fuentes).
- Quiero añadir la posibilidad de que el jugador introduzca sus propias preguntas y respuestas, pero sé que el tema de permisos y carpetas para ficheros en Android es muy suyo. ¿Dónde puedo almacenar los ficheros que se generen? ¿Puedo acceder a otras carpetas que no sea la propia del juego, como la de imágenes o descargas? ¿Recomendais leer desde esas carpetas o es mejor importar lo que necesite el juego a su propia carpeta? Tendría que poder importar imágenes para algunas de las preguntas.
- ¿Que formato recomendais para esas imágenes? ¿PNG o FPG?
- ¿Funciona el teclado de Android o debería currarme el mío propio?

Y esta, de propina, de cara al futuro ¿Qué necesitaría para subir la aplicación a la Play Store? ¿Y para una versión de pago? ¿Se pueden añadir donaciones integradas en la App?

PD: mmmm, quizás pueda añadir DLCs gratuitos con mas preguntas y respuestas que vaya añadiendo a posteriori ¿Dónde se tienen que subir?

Hale, ya podeis volver a tacharme de novato :P
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

alicesimu

#1
Yo te puedo ayudarte aun que soy novata con el tema android, pero si te puedo responderte y orientarte, ya que hice muchos test de prueba.
Pero estoy aprendiendo mucho.

1-investiga los ejemplos que vienen de android de pixtudio aprendes mucho de ellos.

2-resoluciones recomendadas 480 y 720(max)
Es decir cogiendo el móvil en horizontal, pero tu haces esto set_mode(850,480,32); el 32bits es necesario para probarlo en windows, en android no es necesario.
Aun tenemos terminales que la pantalla no llegan a 720HD de definición.
Los set_fps el que quieras!

Si tu objetivo es que llege a mas dispositivos móviles de gama baja, media. Usa 480 de definición.
Además es compatible con android 2.3.4 API 10, hasta la ultima 7.0 24.

-
Tema input de teclado windows y android.
Esta verde actualmente ya que con la variable ASCII. Permite la introducción de caracteres imprimibles bajo pc.
En android esta en fase alpha actualmente, invoca el teclado de android pero aun no permite insertar caracteres string por ahora... Hay que esperarse a la beta que funcione.
Ya como ultima y funcional opción, es hacerte un teclado digital propio, con los caracteres que necesites, pero aquí no necesitas usar la variable ascii. Esta ultima opción funciona en ambas plataformas pc y android.

-
Guardar ficheros, crear carpetas...
Esto esta verde, solo permite usar de forma exitosa las funciones de mod_files, el otro modo_dir no funciona en android, esta capado por el royo de permisos, esto ya lo reporte yo. Se lo esta mirando el tema.
Solo podemos escribir ficheros y leer, esta se aacena en la memoria interna como "datos" como cualquier app.
La gracia que los datos se mantiene cuando hay una actualización de la aplicación, no se borran.

-
Sobre google playa desevoloper, es el portal para hacerte tu sitio de apk, sean gratuitas o no.
Es muy poderosa!!! Una pasada.
Solo debes hacer un único pago de 25$ por tarjeta de crédito/DeVito (no PayPal).
Todo esta muy bien explicado y para empezar trabajaras en apk en fase alpha!

Yo ya tengo uno y es una maravilla!

-el tema de dlc para android, lo veo verde.
El royo de pack de expansiones y dlc, en android por ahora no lo veo posible, hasta que tengamos permisos de acceso a la tarjeta sd y almacenamiento externo, para poder leer el contenido adicional.
Otra opción seria experimental, usar la modo_curl. Y bajarte los ficheros vía internet por http o FTP a tu hist de servidor dedicado sea gratuita o de pago.
Ese tema estoy por investigarlo.
Pero el modulo url existe y en windows funciona.

-
Ultima cosa usa la variable OS_id para saber si estas en windows o android, así podrás programarlo mas fácilmente los métodos de entrada por ratón o táctil android.

-
Usa el Debugger del empaketador android, veras todos los mensajes de say. Además de posibles mensajes de advertencia y error.

-Para android te recomiendo PNG 32bits, ya que esta comprimidos y lo cargas con png_load y dentro lo manejas como si fuese un map.
usar FPG/MAP sin comprimir(requisito) ocupan espacio en disco, almacenamiento interno del movil una vez instalada la app.

si usas solamente png, te ahorraras espacio almacenamiento interno.

la APK pesara casi igual, si usas png o FPG/MAP ya que esta comprimido todo dentro del apk.

-
Icono del APK aplicacion android;
aqui te explica la teoria: http://www.isgarsi.com/creacion-y-uso-de-iconos-en-android/
lo que debemos saber que se trata de Launcher icons.
Y aqui un sencillo generador de iconos: http://romannurik.github.io/AndroidAssetStudio/icons-launcher.html
Atencion!
Cuando se ponen los iconos en tu proyecto?
Despues de crear la primera APK, calma! que ahora tenemos los ficheros generados:
tendras esta carpeta dentro de tu carpeta done tengas tu .prg/.dcb
<carpeta tu juego>\Pixtudio_Export_<nombre del prg>

dentro iremos a colocar los iconos:
<carpeta tu juego>\Pixtudio_Export_<nombre del prg>\Android\res\
dentro estan las diferentes tamaños de iconos.
gracias a la tool que te he pasado nos genera los tamaños que necesitamos.

Solo que el nombre debe ser: drawable-<tipo de tamaño icono>
dentro el .png debe llamarse icon.png en todas las carpetas: drawable-<tipo de tamaño icono>

te adjunto una captura.png de la estructura y un ejemplo mio:
Ten cuidado, que las carpetas que genera y el nombre el icon.png no es la misma:
http://romannurik.github.io/AndroidAssetStudio/icons-launcher.html

Hay que cambiarlas como te dije
drawable-<tipo de tamaño icono>
el .png debe llamarse icon.png en todas las carpetas: drawable-<tipo de tamaño icono>

al terminar, vuelve a crear el apk y veras en tu dispositivo android o emulador que cargara el icono personalizado.

Espero averte ayudado con mis primeros consejos.

josebita

Una cosilla: La idea es que nunca uséis set_mode() en Android. En la medida de lo posible deberíais utilizar la resolución nativa del dispositivo, que se obtiene si no se llama a set_mode().

alicesimu

Quote from: josebita on November 09, 2016, 03:14:21 PM
Una cosilla: La idea es que nunca uséis set_mode() en Android. En la medida de lo posible deberíais utilizar la resolución nativa del dispositivo, que se obtiene si no se llama a set_mode().

si se usara la resolucion nativa del movil abria que usar scale_resolution aun asi...

set_mode funciona bien, no le veo el problema.

l1nk3rn3l

Excelente que uses el pack , ahorras tiempo...
Cuando el motor3d y el multiplayer este integrado , usaras el pack muy seguido...

de todas maneras hay un ejemplo de acceso a la memoria sd externa
examples\01_beginner\android\jni

usando la funcion

ExternalStoragePath= EXT_LIBRARY_FUNCTION_RUN_BYNAME_Rstr("ObtenerRutaAlmacenamientoExterno","(Ljava/lang/String;I)I",
                   "",0 );


es inestable pero en la próxima beta estará sin errores..


la próxima beta tendrá...
+ acceso a la memoria externa en android
+ crear directorios en la memoria externa
+ si queda tiempo...  chipmunk physics



josebita

Quote from: alicesimu on November 09, 2016, 03:25:58 PM
Quote from: josebita on November 09, 2016, 03:14:21 PM
Una cosilla: La idea es que nunca uséis set_mode() en Android. En la medida de lo posible deberíais utilizar la resolución nativa del dispositivo, que se obtiene si no se llama a set_mode().

si se usara la resolucion nativa del movil abria que usar scale_resolution aun asi...

set_mode funciona bien, no le veo el problema.
No, a lo que me refiero es a que el programa utilice una resolución dinámica. Si la pantalla está a una resolución, pues se juega a esa pero si está a otra, se adapta a la nueva.

De lo contrario habrá que estar atento al aspect ratio de cada móvil, que puede ser un lío.

alicesimu

Quote from: josebita on November 09, 2016, 03:54:47 PM
Quote from: alicesimu on November 09, 2016, 03:25:58 PM
Quote from: josebita on November 09, 2016, 03:14:21 PM
Una cosilla: La idea es que nunca uséis set_mode() en Android. En la medida de lo posible deberíais utilizar la resolución nativa del dispositivo, que se obtiene si no se llama a set_mode().

si se usara la resolucion nativa del movil abria que usar scale_resolution aun asi...

set_mode funciona bien, no le veo el problema.
No, a lo que me refiero es a que el programa utilice una resolución dinámica. Si la pantalla está a una resolución, pues se juega a esa pero si está a otra, se adapta a la nueva.

De lo contrario habrá que estar atento al aspect ratio de cada móvil, que puede ser un lío.

Esoooooo!! bieen veo que estamos en la misma onda!!  ;D

si el aspect ratio es muy importante, tambien las DPI de un movil o tablet, puede jugarte una mala pasada para aquel usuario juegue a nuestra app.

me ice una anotación sobre resoluciones panorámicas y su valor aspect ratio.
Quote
   //formato 16:9 panoramico (arpox)
   
   //800x480 S2-Gama media. -1,666666666666667
   
   //852x480 Panoramico -1,775
//Org>853x480<Panoramico -1,777083333333333 <mas cerca del panoramico
   //854x480 Panoramico -1,779166666666667
   
   
   //960x540 S4 mini -1,777777777777778
   //1024x600 netbook -1,706666666666667
   
   //1196x720 Sony XPIERA SP(Barra lateral botonera) -1,661111111111111
   //1280x720 HD TV, Sony XPIERA SP, S3 -1,777777777777778
   
   //1366x768 monitor/portatil -1,778645833333333
   //1920x1080 HD PC,TV,SmartPhone/Tablet -1,777777777777778
   


el truco es hacer antes:
graphic_info(0, 0, G_HEIGHT)
graphic_info(0, 0, G_WIDTH)

para comprobar la resolucion real del dispositivo,
haciendo una division, se puede obtener el valor aspect ratio
dependiendo del valor, seria mas o menos panoramico.

ademas podemos jugar con una variable, que controle el ancho de pantalla, asi adaptarse lo mejor posible, sin dejar margenes negros desaprobechados, es la idea:  ;)


IF(OS_ID==1003);
if(graphic_info(0, 0, G_HEIGHT)==720);
if(graphic_info(0, 0, G_WIDTH)<1280);
mspo=800;
end
end
end

SET_MODE(mspo,480,32);


esto es un ejemplo, de un pequeño fix, para mi pantalla movil, apesar que sea de 720 de definición... dependiendo del modelo, puede o no tener la barra lateral/inferior digital(Atras,home,menu/historial).
es decir si es inferior a 1280 de ancho, el aspect ratio es diferente...

//1196x720 Sony XPIERA SP(Barra lateral botonera) -1,661111111111111
//1280x720 Sony XPIERA SP, -1,777777777777778
la comparacion tecnica es esa. en mi caso personal.

Se dominar el tema de la definicion de pantalla, y su aspect ratio.
de echo gozo a la hora de diseñar los cimientos del proyecto!
es lo mas importante!  ::)

Ya reporte a Link, sobre la posible ocultación automática de la barra digital(Atras,Home,..)
se lo esta mirando, molaria que se auto-ocultara esa barra.(juraria que en la beta 2, se ocultaba sola)
Ya que actualmente me devuelve el ancho: graphic_info(0, 0, G_WIDTH) > 1196
cuando lo interesante que se vea al 100% de la pantalla: cogiendo el ancho total: graphic_info(0, 0, G_WIDTH) > 1280

Quote from: l1nk3rn3l on November 09, 2016, 03:53:28 PM
Excelente que uses el pack , ahorras tiempo...
Cuando el motor3d y el multiplayer este integrado , usaras el pack muy seguido...

de todas maneras hay un ejemplo de acceso a la memoria sd externa
examples\01_beginner\android\jni

usando la funcion

ExternalStoragePath= EXT_LIBRARY_FUNCTION_RUN_BYNAME_Rstr("ObtenerRutaAlmacenamientoExterno","(Ljava/lang/String;I)I",
                   "",0 );


es inestable pero en la próxima beta estará sin errores..


la próxima beta tendrá...
+ acceso a la memoria externa en android
+ crear directorios en la memoria externa
+ si queda tiempo...  chipmunk physics

Que bien las noticias!! Animo!!

Drumpi

Muchas gracias por la info. Lo iré mirando poco a poco, porque es mucha información a asimilar de golpe.
Lo de la "auto-resolución" es nuevo :D Mejor porque así no tengo que ir haciendo experimentos. La pega es que tendré que crear set de gráficos para diferentes resoluciones y usar size para adaptarlos al tamaño... o generarlos en tiempo real (nada que no haya hecho ya en el Tilemap Editor V2 :D).
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

alicesimu

Al principio parece complicado y muy tedioso pero ya veras que poco a poco veras mas claro tu proyecto, animo!

Drumpi

Bueno, el proyecto oficialmente ha comenzado. Se llamará (provisionalmente) "Learn in pairs" y está previsto que esté funcionando a finales de Semana Santa (y yo voy, y me lo creo :D).

De momento estoy importando algunas cosillas desde Bennu, y probando cosas básicas, como el tema del ratón y la exportación. Así que aquí empiezan mis dudas oficiales:
- En PixtudioPM ¿qué son los macros de compilación? Entiendo que son los comandos del compilador ¿no?
- ¿Sigue existiendo la ventana de debug? ¿Cómo hago para sacarla?
- A la espera de que se arregle la documentación, no encuentro nada en la web de PixTudio acerca de la mod_multi ¿Es la misma que salió para el port de Bennu a Wii? a ver si encuentro su ayuda :S
- ¿Finalmente qué pasa con el teclado de Android? Quiero saber antes de meterme de lleno en la creación de un teclado virtual, porque eso me va a llevar cerca de un día y no lo tenía previsto :S

- Esta por curiosidad ¿Se pueden usar otras fnciones internas de Android? Me interesaría muchísimo poder hacer uso del módulo de reconocimiento de palabras, o que, al menos, me pudiera reconocer unos 6 o 7 comandos diferentes ^^U
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

l1nk3rn3l



- ¿Sigue existiendo la ventana de debug? ¿Cómo hago para sacarla?

en el pixtudio pack incluye exportador, depurador nativo de android  y otras cosas...  y es la leche...
http://pixtudiopack.blogspot.com


- A la espera de que se arregle la documentación, no encuentro nada en la web de PixTudio acerca de la mod_multi ¿Es la misma que salió para el port de Bennu a Wii? a ver si encuentro su ayuda

claro la mod_multi te permite detectar mas click del raton sobre la pantalla puedes ver un ejemplo
para comprender su logica en :
directorio : examples\01_Beginner\android\basic
fichero:     01_mod_wm.prg



- ¿Finalmente qué pasa con el teclado de Android? Quiero saber antes de meterme de lleno en la creación de un teclado virtual, porque eso me va a llevar cerca de un día y no lo tenía previsto :S

bennugd/pixtudio  incluye un teclado nativo   
directorio : examples\01_Beginner\android\basic
fichero:     07_input_text_and_clipboard.prg


- Esta por curiosidad ¿Se pueden usar otras fnciones internas de Android? Me interesaría muchísimo poder hacer uso del módulo de reconocimiento de palabras, o que, al menos, me pudiera reconocer unos 6 o 7 comandos diferentes ^^U

directorio: examples\01_Beginner\android\jni

lo de reconocimiento de palabras, ni idea ...   pero bennu permite usar java para extenderlo puedes ver los ejemplos
de la interfaz jni para llamar a funciones Java externas...

Si deseas hacer multiplayer android .. tambien esta ok para probar...


Drumpi

#11
Tranqilo, L1nk, que el PixTudio Pack ya me lo he bajado y lo estoy usando ;). Lo que le hace falta es un pequeño índice que te diga qué cosas se incluyen y dónde. Ahora voy con más detalles.

Para empezar, no hablo del exportador a Android, sino de la consola de depuración que salía al incluir la mod_debug y pulsar CTRL+C en tiempo de ejecución.
Por cierto ¿En dónde está ese exportador? Porque veo el SDK y el JDK (que ya los tengo instalado desde hace años, por cierto :D ), el ant que no sé para qué es, pero que se supone que lo tengo en Eclipse, y dos empaquetadores, del que sólo conozco el Packator, que es lo que usa panreyes para empaquetar sus juegos en PC ^^U

Sí, he visto el código de la mod_multi, es el mismo que se hizo en su día como demo de la librería, pero... no dice cómo funciona: ni para qué sirve multi_numpointers (aunque me lo imagino), ni qué parámetros admite multi_info (que lo he tenido que leer en el código fuente directamente)... Sirve como ejemplo, pero no de documentación :S

El código del teclado no lo había visto aun. Debo ser menos ansias y leerme los ejemplos antes de lanzarme a escribir código ^^U Es un defecto que tengo, que soy muy ansias :D

Y tomo nota del JNI. Tendré entonces que buscar la documentación de Android cómo hacer eso, pero al menos es un punto de partida. Gracias.



Sigo con más dudas: uso, como digo, PixtudioPM para compilar, pero he creado una carpeta en fpg-source/interface/big_buttons, y al darle al botón de compilar FNT y FPG no me lo ha generado. He movido big_buttons a la carpeta fpg_source y entonces sí, pero en ese caso, cuando compilo el código se me vuelven a compilar los FPGs (al menos en Android) y no puedo tener una esructura ordenada por carpetas de FPGs. Pixel, ¿has pensado en eso? ¿o me tengo que pasar mejor al exportador del PixTudio Pack (si lo encuentro ^^U)?
En la mod_multi, en  multi_info ¿por qué se usan strings en lugar de constantes para obtener los valores del punto de contacto?

Bueno, eso de momento ^^U

EDIT: Intento ejecutar 07_input_text_and_clipboard.prg, pero me dice que las funciones SET_CLIPBOARD_TEXT, GET_CLIPBOARD_TEXT y SET_TEXT_INPUT no existen. Estoy usando la última versión de PixTudioPM que hay, y según las fechas, los binarios son más actuales que los del PixTudio Pack v1.5beta1. Incluso en el ejemplo he tenido que cambiar el nombre a las funciones load_song y play_song porque para PixTudio son ahora song_load y song_play :S
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

l1nk3rn3l

Los binarios de pixtudio pack
Solo funcionan con el pack
Mencionado internamente trae
Nuevas funciones y otras cosas...
Puedes descargarlo y extraerlo
En otra carpeta diferente y probar
Sus ejemplos sin combinarlo
Con otro pack

En el editor presionas la tecla
F9 y ya tienes el exportador
Android

Drumpi

Jo ¿Tengo que instalar OTRO notepad++? Que ya tengo dos y por obligación. Y ni te cuento cuantos editores de código aparte, porque parece que cada lenguaje necesita el suyo, a pesar de que todos ellos son compatibles con los lenguajes que uso: que si Eclipse, Visual Studio, Mono Develop (¡dos veces!).
Prefiero crearme mi propio teclado antes que eso.

En todo caso, probaré a meter los binarios del Pixtudio pack en el PixtudioPM y a ver qué pasa, pero me gustaría poder configurar el entorno a mi gusto, especialmente el tema de exportar a Android, que para novatos que se inician vale, pero es que estoy cansado de tener que instalar cosas por cada proyecto en el que me meto, que son unos cuantos :S
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

l1nk3rn3l

Entiendo tu preocupación..

Pero la versión del pack
Es portable y no interfiere
Con tu notepad normal...

Por favor danos una sugerencia de como seria
El editor