viernes, 28 de diciembre de 2007

Movimiento dentro el mapa

Finalmente hemos conseguido crear un cursor para irnos moviendo a través del mapa.
Los movimientos se realizan con el touchpad en los 4 sentidos (izquierda, derecha, arriba, abajo) en el que cada movimiento corresponde a 5 pixeles.
Sabiendo que al iniciar el programa el cursor se encuentra en la coordenada (0,0) podremos ir haciendo los cálculos pertinentes para saber en cada momento en dónde estamos.
El problema que nos encontraríamos ahora es como reconocer que el usuario quiere acceder en una casilla en concreto, ya que sabemos en la que se encuentra a través de las coordenadas, pero para que reconozca que hay debajo e inicie una acción pertinente es lo que estamos investigando ahora.

A continuación se puede ver el código que tenemos para movernos por el mapa:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
boolean procesada= true;

switch(keyCode){
case KeyEvent.KEYCODE_DPAD_UP:
posY-=MOVIMIENTO;
break;
case KeyEvent.KEYCODE_DPAD_DOWN:
posY+=MOVIMIENTO;
break;
case KeyEvent.KEYCODE_DPAD_LEFT:
posX-=MOVIMIENTO;
break;
case KeyEvent.KEYCODE_DPAD_RIGHT:
posX+=MOVIMIENTO;
break;
default:
procesada=false;
break;
}

//correcció en cas de que sortim de pantalla
if(posY<0) posy="0;" posx="0;">altoPantalla)
posY=altoPantalla-altoPosicion;
if(posX+anchoPosicion>anchoPantalla)
posX=anchoPantalla-anchoPosicion;

return procesada;

}
Se debería encontrar una solución similar para que reconociera con un click la aldea a la que se quieren ver los detalles.

sábado, 22 de diciembre de 2007

Diseño de clases : Edificios

En esta entrada voy ha hablaros de la solución que hemos implementado para definir la lógica de los edificios en C#.

En cuanto a su estructura, hemos creado una clase llamada “Edificio” y hemos decidido que cada uno de ellos será una clase heredada de "Edificio". Por ello, todos nuestros edificios tendrán unas semejanzas y unas peculiaridades. Abajo os adjunto una captura del editor UML que hacemos servir para definir las clases.



Los edificios están identificados en el árbol de construcción de la anterior entrada con tema “Propuesta de edificios”. Ahora, podemos añadir que todos nuestros edificios funcionarán de una forma similar, todos recibirán algo (mantenimiento) para ofrecernos alguna otra cosa (posibilidades, producción, etc.), podemos ver un diagrama que ilustra esto abajo. Esto se definirá con métodos propios de cada edificio y será gestionado por la aldea.



El problema más grande que nos hemos encontrado a la hora de definir esta parte ha sido el almacén de los datos de cada edificio. Cada uno tiene muchísima información referente a cada uno de los niveles que se puede encontrar (20 generalmente).

Al principio, para que el sistema fuera más flexible, decidimos
que cada objeto tuviera su información, pero la naturaleza de nuestra aplicación (tendencia a hacer muchas aldeas) hacia que tuviéramos muchísima información redundante. Por ello, creamos una clase pública y estática que contendrá toda esta información, y cada edificio podrá consultarla cuando lo necesite. Con esto centralizamos la información en una especie de base de datos pública y evitamos repetir información.



En esta ilustración podemos ver claramente como en el primer modelo (ilustrado en la izquierda), los objetos eran pesados y se repetía la información. Mientras que en el dibujo de la izquierda vemos objetitos consultando la clase que contiene los datos.

Saludos

domingo, 16 de diciembre de 2007

Parte Gráfica del Mapa de Poblados


El problema que nos encontramos ahora es en el momento de crear el mapa con todos los poblados. Vemos en el juego original que es un rombo dividido en pequeños rombos correspondientes a cada una de las aldeas. Se podría crear una matriz de arrays con un rombo individual, y tratar de crear una función que serialice cada una de las casillas haciendo el mapa completo... o qué solución sería la más adecuada¿? porqué sería bueno encontrar una que fuera común con el del mapa de una aldea en concreto y poder utilizar la misma solución para los dos.

martes, 11 de diciembre de 2007

Propuesta de edificios

Hola !

El diagrama de edificios propuesto es el siguiente:




Básicamente las funciones de cada edificio son las siguientes:

- Edificio principal : para construir más deprisa.

- Plaza reuniones : para mover las tropas.

- Granero : marca el limite de cereal que podemos almacenar.

- Almacen : marca el limite de materiales (excepto cereal) que podemos almacenar.

- Muralla : Da una bonificación a la defensa.

- Escondite : Marca un número de recursos que nuestra aldea podrá ocultar al ser atacada.

- Taberna Heroes : Sirve para crear heroes.

- Cuartel : Sirve para crear soldados de infantería.

- Academia : Sirve para investigar nuevas unidades.

- Herreria : Sirve para mejorar la defensa de las unidades (soldados).

- Armeria : Sirve para mejorar el ataque de las unidades (soldados).

- Establo: Sirve para generar soldados de caballería.

- Residencia : Sirve para generar colonos, que permitirán fundar nuevas aldeas.

¿ Qué os parece la idea ?

Tentativa fallida de trabajar con el sdk de Travian

Nos hemos puesto en contacto con los administradores de Travian.

La idea era que nos cedieran su Sdk para crear un cliente de moviles basado en Android para su juego, un clásico juego en masas por internet que encaja en nuestro proyecto a la perfección.

Sin embargo, los administradores de Travian han denegado cualquier tipo de contacto para desarrollar esta idea.

Una lastima, pero seguiremos adelante con imaginación.

sábado, 1 de diciembre de 2007

Propuesta Diagrama de Clases

En esta propuesta, sólo se contempla una "civilización", con un tipo de soldados y un tipo de recurso. Con ella intento modelar la estructura de clases adecuada que debemos usar para no tener problemas a la hora de acceder a todos los datos que guardamos.


¿ Os parece bien la estructura ? ¿ Dudas ? ¿ Algo más a tener en cuenta ? Saludos !

viernes, 30 de noviembre de 2007

Concretando propuesta proyecto

Hola !

Para empezar voy a explicar las bases de la idea de proyecto que hemos tenido, la primera propuesta de nuestro proyecto es la creación de un juego que trabaje sobre la nueva plataforma para móviles Android.

Este juego será multijugador, trabajará en línea, y pensamos ambientarlo en la época romana. La idea seria crear diferentes "civilizaciones" que puedan luchar entre si por el dominio del juego.

El juego empezaría en una pequeña y pobre aldea, el jugador tendrá como tarea expandir el reino tanto como pueda, ya sea comerciando o a base de fuerza bruta, como ya sabemos, en el amor y en la guerra, todo vale. Para ello tendrá que recojer diferentes recursos en sus minas, que podrá ampliar por un módico precio.

En resumen, la idea es crear un equivalente a juegos masivos online (MMORPG, Massive(ly) Multiplayer Online Role-laying Games) que hoy dia triunfan en la red que pueda trabajar sobre un teléfono móvil y basandose en su agenda de contactos.

Bueno, las cartas están sobre la mesa, la cuestión es:

¿ Cambiaríais algo de la BASE que he puesto arriba ?

Primer debate abierto !

jueves, 29 de noviembre de 2007

Bienvenid@

En este Blog se pretenderá hacer el seguimiento del Proyecto de la asignatura sobre Dispositivos Móbiles y Sistemas Empotrados que se está realizando durante el quadrimestre de otoño 07 en la UPC de Castelldefels.

El proyecto a realizar será una aplicación para Android, el reciente Sistema Operativo que acabava de sacar Google junto con otras importantes empresas de IT.

En el siguiente enlace hay una presentación realizada por un alumno que está cursando esta asignatura y en dónde se podrá tener una visión mucho más clara de que es Android: http://docencia.ac.upc.edu/EPSC/PSEM/observatorio.htm