0.28: Hoy estoy vago xD. Gracias a Martinez por darme los stats de str, agi, def, hp y mp de los personajes y mobs y la funcion de daño a partir de str y def. Me he mirado por curiosidad las librerias de los sensores para intentar hacer una app que monitoree el estado del acelerometro y magnetometro, pero no me he aclarado ^^U. Por la noche he hecho un regalo para Prats, que mañana dia 2 es su cumple. Es un proyecto con un cargador gif y un ejemplo de una tarta. El regalo en si es el codigo, no el gif animado xD. Supongo que le servira, es un buen ejemplo de uso de handler y runnable para sustituir a timer y de uso de contextos para obtener referencias de R a partir de strings.
Archivo de la categoría: FFDroid
31 Octubre FFDroid
0.23: No me acababa de gustar lo de tener que pasar por parametro el contexto asi que me he puesto a pensar como arreglarlo. No se como no se me habia ocurrido antes -.- , es tan simple como acceder a la variable poniendo su paquete y clase primero, asi -> droid.pkg.Prueba.appContext y luego .getresources y lo demas…
0.24: Por fin consigo cambiar el color de una progressbar, y ademas con gradient! xD. Aqui dejo una screen de como ha quedado la primera ejecucion, aun tengo que decidir que colores poner y aclararme con background, progress y secondaryprogress.
0.25: Ya me he aclarado con los colores. He puesto la barra de tiempo verde, hp rojo, mp azul. La barra del fondo de todas gris. Barra de tiempo va de inicio a fin degradando hacia oscuro. La barra de hp va de inicio a centro constante, y de centro a fin degradando a claro. La barra de mp va de inicio a centro constante y de centro a fin degradando a claro. Las barras de fondo de hp y mp van degradando de inicio a fin hacia oscuro. La barra de fondo de tiempo va degradando de inicio a fin hacia claro. Esto es porque las barras de HP y MP iran de 100% a menos, y el tiempo de 0% a mas. Adjunto imagen con shape=rectangular.
0.26: Prefiero que se vea «ovalado», asi que añado corners al shape de los progressbar. Adjunto screen:
0.27: Reestructuro la clase personaje y archer para dejar toda la carga sobre la superclase. Ahora la subclase solo llama a la superclase pasandole los parametros del user y del personaje propio de la subclase. Tambien he modificado la clase mob y cactilio y tomberi. Muchas lineas de codigo, me he mareao xD, no se si esta optimizado del todo, quisiera revisarlo otro dia. Adjunto video.
30 Octubre FFDroid
0.19: Hoy me dispongo a crear las clases de cada objeto. Hasta ahora habia apelotonado todo en una activity para probar que podia seguir adelante, y puedo 😀 He creado la superclase Personaje con una subclase Archer por ahora. Intentaba pasarle por parametro la referencia tipo R.id.NombreChar1 pero no he podido porque tendria que extender de Activity para poder usar findViewById y de todas formas tampoco funcionaba, asi que al final acabo pasandole una View entera, no solo la referencia, asi: Archer arquero = new Archer((ImageView)findViewById(R.id.Char1)); (ejemplo). Tambien añado funciones «pestaniear» y «atacar» que son para las animaciones estatica y dinamica.
0.20: Sigo limpiando el codigo y creo la clase Mob, parecida a Personaje pero quitando muchas cosas (voy a conservar el valor MP del mob, quizas me sirva). Tambien creo una subclase Cactilio parecida a Archer. Creo una variable statica por si se crean varios Cactilios, a cada uno le asigno el nombre «Cactilio «+numero, por ejemplo «Cactilio 1» :D. He implementado la funcion «pestaniear», que para el cactilio solo alterna entre dos imagenes. No tengo sprites para funcion atacar, ya vere que hago…
0.21: Gracias a Prats me he vuelto a mirar la posibilidad de crear referencias tipo R.drawable.cactilio (int) a partir de strings y tras 10 horas de hacer pruebas he conseguido sacarlo xD. He modificado las superclases Personajes y Mobs para que carguen imagenes con parametro string. Ahora tengo un cargador de imagenes que acepta int (para las referencias) y otro que acepta strings (le puedo pasar que cargue archer01, y equivaldria a cargar R.drawable.archer01), esto me viene muy bien para ahorrar lineas al cargar con un bucle las imagenes de los gifs, que los tengo dividido en imagenes estaticas. Al final se me quedara «deprecated» el cargador con int XD.
La forma para que funcionara ha sido la funcion getIdentifier(«archer», «drawable», «droid.pkg.FFDroid»); que devuelve un int con el identificador correspondiente a R.drawable.archer dentro del paquete droid.pkg.FFDroid. Pero esto tal cual no funcionaba, tenia que llamarse desde getResources().getIdentifier(). Pero el getResources solo funcionaba en el contexto de la activity main, no queria funcionar dentro de un runnable ni en las superclases. Asi que he tenido que volcar el contexto de la activity principal en una variable publica statica que se supone que deberia ser accesible en todo el paquete, pero no lo es… por tanto tengo que pasar esta variable por parametro a todos los objetos al crearlos si quiero que puedan cambiar su imagen alguna vez. Total la funcion para el arquero en funcion de i queda asi: ((ImageView)findViewById(R.id.Char3)).setImageResource(appContext.getResources().getIdentifier(«archer0″+String.valueOf(i), «drawable», «droid.pkg.FFDroid»)) obviamente en el codigo esta mejor presentada ^^U
0.22: Finalizo la implementacion de las funciones «pestaniear» de los mobs y pestaniear y atacar del arquero. El arquero parpadea 1 de cada 5 periodos comprendidos aleatoriamente entre 500 y 1500ms.
FFDroid 29 Octubre
0.16: Por fin me funcionan los sliders… He definido 3 estados runnables que se gestionan con un solo metodo «listener» de eventos. El primer estado se activara cuando alguna barra de tiempo llegue a max, pasa de 27, 80, 53 a 27, 53, 80. El segundo estado se activara cuando se acabe de seleccionar en el menuAtacar(aun por determinar como se notificara que se ha acabado de seleccionar) y pasa de 27, 53, 80 a 0, 80, 80. El tercer estado es volver al estado 1, pasa de 0, 80, 80 a 27, 80, 53 y se activara cuando haya acabado la animacion, la cual se activara solo cuando el estado anterior acabe y este en 0, 80, 80.
0.17: Ya que funcionan los sliders paso a hacer el layout del menu Atacar que sale automaticamente al completar la barra de tiempo de cualquiera de los 3 chars. Este layout tiene abajo un resumen de los nombres y barras de tiempo, hp y mp. No me cabia tambien los valores numericos de hp y mp. Arriba sale la lista de acciones que se pueden hacer. Por ahora solo implementare Atacar, y Defensa supongo que tambien. No consigo alinear el texto del textview, no existe textAlign y layout gravity no me hace caso. Queda feo un textview, quizas lo cambio a otro componente. PD: Sigo sin saber como cambiar el color de los progress bar
0.18: He acabado de editar la animacion del arquero y la he implementado.
FFDroid 28 Octubre
0.8: Las animaciones van a ser un problema, me tocara editar todas las imagenes para ajustar la altura y anchura xD. Nuevo prototipo orientao a k funcionen las animaciones:
0.9: Nueva relacion de pesos 1-4 para mobs-char y 1-3 para info-mobchar. Probado en HTCHero con QVGA
0.10: Nueva relacion de pesos 1-4 para mobs-char y 1-4 para info-mobchar. Probado en NexusOne 800×480
0.11: No me acaba de convencer la distribucion xD, lo dejare en 4:3 (53-27) para info-mobchar. Cuando se elija opcion del menu se desplazara info con un timer cambiando el peso… con ((LinearLayout)findViewById(R.id.MobChar)).setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT, b)); donde b es el nuevo peso.
0.12: Retocando imagenes para adaptar las animaciones. Las imagenes staticas son de 32×48
0.13: Por fin me aclaro a sacar las capas de un gif en gimp. He sacado las 8 imagenes del gif de tomberi y las cargo con un timer (mi gif player personalizado xD)
0.14: Ajustando las animaciones a 175×48 pixels (archer10.gif)
0.15: Me aburria de editar imagenes y me he puesto a hacer sliders. uno para ocultar el layout de info y mostrar el de atacar, otro para mostrar en pantalla completa el layout de mobchar y ocultar el de atacar, y el otro para volver a mostrar info como al principio. Estoy teniendo problemas en los dos ultimos ya que se activan por click. Solo se ejecutan una vez…
FFDroid 27 Octubre
0.5: Ya parece funcionar todo, asi que hago prototipos de como quiero que quede mas o menos. Puesto que la pantalla es 16:9 y es diminuta tengo que optimizar el espacio, asi que cambio la distribucion de los menus. Es solo una imagen ajustada pixel a pixel, no creo que me quede tan bonito al final xD
0.6: Creando layout de batalla para adaptarse lo maximo posible al prototipo. Aun no he conseguido cambiar el color de la progress bar (el gris y amarillo). Solo me deja el background, que ni se ve. He probado con una imagen en drawable y cargarla en indeterminate, que no se lo que es, y no parece que sea la solucion xD. Tambien he quitado el titulito de arriba que ponia el nombre de la aplicacion, quiero conservar la barra de notificaciones y hora.
0.7: Ya me he atrevido a toquetear el timer… NO FUNCIONA el timer de java asi que he tenido que crear uno a mano con handler y runnable. No adjunto foto porque es como la de arriba, con 4 cactilios alternando sus patas cada 800ms y los arqueros pestañeando cada 3000 xD
FFDroid 26 Octubre
0.2: Pantalla de seleccion, pero no me cabe el fondo y he tenido que cambiarlo. Ademas me salen estirados los pjs porque uso fitXY ya que fitCenter no parece funcionar….
0.3: Pantalla de seleccion, EL PUTO WYSIWYG DE ECLIPSE ME SACABA LAS IMAGENES FUERA DEL LAYOUT VISIBLE, pero al emularlo en el AVD funciona bien, asi que al final arreglo los iconos y dejo fitCenter
0.4: Arreglo el layout de seleccion para que las imagenes y la info tenga el mismo peso, cambio colores, etc, etc. Empiezo el layout de batalla con imagenes aleatorias y un mensajito pa ver si los intents se pasan bien.
FFDroid 25 Octubre
25 Octubre empiezo el FFDroid. Un port del FFVB que hice hace 8 años sin conocimientos de informatica
0.1: Conseguir poner fondo a un layout xD. Cuando intente portarlo a c++ con las liberias gtkmm no pude hacer esto y tuve que abandonar