Skip to content

Narratech/IAV-Movimiento

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IAV - Base para la Práctica 1

Note

Incluir un aviso como este si se han realizado cambios significativos en la documentación con respecto a la revisión anterior.

Autores

  • Nombre completo (Usuario GitHub)
  • Nombre completo (Usuario GitHub)
  • Nombre completo (Usuario GitHub)

Propuesta

Este proyecto es una práctica de la asignatura de Inteligencia Artificial para Videojuegos del Grado en Desarrollo de Videojuegos de la UCM, cuyo enunciado original es este: Plaga de Ratas.

Esta práctica consiste en... (Explicación breve de que el avatar del jugador será el flautista, que hay ratas con un cierto comportamiento, etc.)

Punto de partida

Se parte de un proyecto base de Unity 2022.3.5f1 proporcionado por el profesor y disponible en este repositorio: IAV-Movimiento

Consiste en... (Explicación detallada de las clases y los métodos ya implementados)

Diseño de la solución

Lo que vamos a realizar para resolver esta práctica es...

El pseudocódigo del algoritmo de llegada utilizado es:

class Arrive:
    character: Kinematic
    target: Kinematic

    maxAcceleration: float
    maxSpeed: float

    # The radius for arriving at the target.
    targetRadius: float

    # The radius for beginning to slow down.
    slowRadius: float

    # The time over which to achieve target speed.
    timeToTarget: float = 0.1

    function getSteering() -> SteeringOutput:
        result = new SteeringOutput()

        # Get the direction to the target.
        direction = target.position - character.position
        distance = direction.length()

        # Check if we are there, return no steering.
        if distance < targetRadius:
            return null

        # If we are outside the slowRadius, then move at max speed.
        if distance > slowRadius:
            targetSpeed = maxSpeed
        # Otherwise calculate a scaled speed.
        else:
            targetSpeed = maxSpeed * distance / slowRadius

        # The target velocity combines speed and direction.
         targetVelocity = direction
        targetVelocity.normalize()
        targetVelocity *= targetSpeed

        # Acceleration tries to get to the target velocity.
        result.linear = targetVelocity - character.velocity
        result.linear /= timeToTarget

        # Check if the acceleration is too fast.
        if result.linear.length() > maxAcceleration:
            result.linear.normalize()
            result.linear *= maxAcceleration

        result.angular = 0
        return result

El pseudocódigo del algoritmo de movimiento de huida es...

También es posible mostrar diagramas...

diagram

Mejor que insertando imágenes, se puede usar Mermaid:

stateDiagram
    [*] --> Inicio
    Inicio --> Juego : Pulsar 'Jugar'
    Juego --> Muerte : Tocado por el Enemigo
    Juego --> Victoria : Coger el Ladrillo Dorado
    Muerte --> Inicio
    Victoria --> Inicio
Loading

Para dibujar espacios de coordenadas 2D con puntos y vectores, se podría incrustar una imagen de Google Draw, o intentar incrustarlo en el repositorio también con Mermaid.

Pruebas y métricas

Plan de pruebas dividido por características (C1, C2 y C3 serían las 3 pruebas que se han realizado de la característica C)

Ampliaciones

Se han realizado las siguientes ampliaciones

  • Los obstáculos del escenario se colocan...

Producción

Las tareas se han realizado y el esfuerzo ha sido repartido entre los autores. Esto se podrá documentar en una tabla como esta o usando la pestaña de Proyectos de GitHub.

Estado Tarea Fecha
Diseño: Primer borrador 2-12-2022
Característica A: Nosequé 11-12-2022
Característica B: Nosecuentos 12-12-2022
...
OPCIONAL
Generador pseudoaleatorio 3-12-2022
Menú 3-12-2022
HUD 12-12-2022

Licencia

A, B y C, autores de la documentación, código y recursos de este trabajo, concedemos permiso permanente a los profesores de la Facultad de Informática de la Universidad Complutense de Madrid para utilizar nuestro material, con sus comentarios y evaluaciones, con fines educativos o de investigación; ya sea para obtener datos agregados de forma anónima como para utilizarlo total o parcialmente reconociendo expresamente nuestra autoría.

Una vez superada con éxito la asignatura se prevee publicar todo en abierto (la documentación con licencia Creative Commons Attribution 4.0 International (CC BY 4.0) y el código con licencia GNU Lesser General Public License 3.0).

Referencias

Los recursos de terceros utilizados son de uso público.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages