-
Notifications
You must be signed in to change notification settings - Fork 37
Sistemas
guidota edited this page May 9, 2019
·
2 revisions
Los sistemas tienen como responsabilidad procesar entidades, usando cierta lógica (acotada) aplicada a X componentes. Estos tienen un "Aspect" que nos indica a que entidades quiere procesar, es decir que componentes tiene o no, y en caso de cumplir con esa premisa, seran procesados.
- Aspecto: Debe tener "Character" y "Heading". No debe tener Moving ni AttackAnimation.
- Contexto: Las animaciones llevan la cuenta de un llamado "idleTime", que dependiendo de el momento en el que está, se usara para renderizar de alguna manera distinta, para asi simular una animacion de idle.
- Responsabilidad: Se encarga que con el paso del tiempo ir actualizando este "idleTime" en las entidades.
- Aspecto: Debe tener "Character" y "Heading". No debe tener Moving ni AttackAnimation.
- Responsabilidad: Avanzar el tiempo de las animaciones
- Aspecto: Debe tener Focused y WorldPos
- Responsabilidad: Mover las coordenadas de la camara para seguir al personaje principal.
- Responsabilidad: Crea las camaras (GUI y world), sabe hacer zoom.
- Responsabilidad: Es el encargado de procesar y ejecutar Kryonet, actúa como listener y sabe enviar paquetes.
- Responsabilidad: Sincronizar el tiempo local con el del servidor cada X segundos.
- Aspecto: Debe tener Focused, AOPhysics y WorldPos (personaje principal)
- Responsabilidad: Prediccion y reconciliacion. Cuando el personaje tiene intenciones de moverse, predice el movimiento, y una vez recibida la respuesta del servidor, valida la prediccion, en caso de haber pifiado, corrige la posicion.
- Aspecto: Debe tener AOPhysics y WorldPos
- Responsabilidad: Mueve las coordenadas (float, no int) de las entidades.
- Aspecto: Debe tener AttackAnimation o Attack
- Responsabilidad: Avanzar animacion de ataque, y actualizar el intervalo de golpe.
- Aspecto: Debe tener Focused y AOPhysics
- Responsabilidad: Chequea si hay intenciones de moverse (Lee las flechas o WASD)
- Aspecto: Debe tener Focused y WorldPos
- Responsabilidad: Renderizar las coordenadas en la esquina de la pantalla
- Aspecto: Debe tener Character, WorldPos, Body y Heading.
- Responsabilidad: Renderizar a los personajes en la camara utilizada para el "world"
- Aspecto: Debe tener Character y WorldPos.
- Responsabilidad: Renderiza los estados de un personaje. TODO: agregar estados
- Aspecto: Debe tener CombatMessage, Body y WorldPos.
- Responsabilidad: Dibuja los mensajes de combate sobre el personaje (daños, fallos, mana recuperada)
- Aspecto: Dialog, Body y WorldPos
- Responsabilidad: Renderizar los mensajes de las entities
- Aspecto: FX y WorldPos
- Responsabilidad: Maneja los FXs y distintas animaciones (puede haber FXs repetidos) y los renderiza.
- Aspecto: Focused
- Responsabilidad: Dibuja la luz central y oscurece fuera del rango de vision.
- Responsabilidad: Dibuja las capas previo a los personajes (terreno y animaciones)
- Responsabilidad: Dibuja las capas posteriores a los personajes
- Aspecto: Debe tener Character, WorldPos y Name
- Responsabilidad: Dibujar los nombres
- Aspecto: Debe tener Object y WorldPos
- Responsabilidad: Renderiza los objetos en el suelo
- Aspecto: Debe tener FX y WorldPos
- Responsabilidad: Renderiza las particulas luego de renderizar personajes (como meditar)
- Aspecto: Debe tener WorldPos y Immobile (por ahora)
- Responsabilidad: Por ahora solo renderizar una P cuando estas paralizado o alguien de tu clan
- Aspecto: Debe tener Focused
- Responsabilidad: Si has seleccionado un hechizo y estas por lanzar, dibuja el tile al cual va a dirigir el ataque en caso de hacer click
- Responsabilidad: Maneja las conexiones mientras se esta en la pantalla de lobby o rooms.
- Aspecto: Debe tener FootPrint y WorldPos
- Responsabilidad: Borra las huellas que se dejaron luego de que pase el tiempo de vida
- Aspecto: Debe tener Meditating y Mana
- Responsabilidad: Se ejecuta cada un intervalo de tiempo, si recupero maná (probabilidad), notifica y manda un update al usuario.
- Hace falta revisar, se uso para testing.
- Aspecto: Debe tener RandomMovement
- Responsabilidad: Mueve a una entidad en una direccion random
- Responsabilidad: Es el encargado de procesar y ejecutar Kryonet, actúa como listener y sabe enviar paquetes.
- IntelliJ
- Windows JDK
- Linux JDK
- Run client and server localhost
- Host a public server
- Import project to IntelliJ