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.
http://santoandia.webcindario.com/imagenes/flanes.jpg