Ir al contenido principal

Archivos: Tareas

Descripción.

Tema 10 – Proyecto final

Para este proyecto final, vamos a crear un proyecto en Unity que implemente las siguientes características vistas durante el curso:

  • Sistema de físicas 2D. Puedes intentarlo con el sistema 3D, ya que es muy similar.

  • Inputs del jugador y aplicación de los mismos sobre un comportamiento del juego, como el desplazamiento u otra mecánica en la que consideres que pueda encajar bien.

  • Colisiones y triggers.

  • Manejo de escenas.

  • Creación de una interfaz sencilla, como nuestro menú de victoria.

  • Reproducción de sonidos.

  • Creación de un ejecutable del juego.

 

Puedes utilizar los recursos que se te han proporcionado para el desarrollo de este curso: sonidos, sprites…

 

Comprime el proyecto en ZIP.

Práctica colisiones

Crea un proyecto usando la plantilla 3D de Unity y distribuye los siguientes elementos en la misma:

  1. Cubo.
  2. Esfera.
  3. Cápsula.
  4. Cilindro.

Implementaremos los siguientes comportamientos para cuando el cubo entre en el área de colisión de los demás objetos (lo moveremos nosotros manualmente desde el modo Play y en la vista de escena).

Esfera

OnEnter

Aparecerá el mensaje en consola: “Colisión activada”.

On Exit

Aparecerá el mensaje en consola: “Colisión desactivada”.

Cápsula

OnEnter

Se activará un objeto delante de ella.

On Exit

Se desactivará el mismo objeto.

Cilindro

OnEnter

Su posición se cambiará a una más elevada.

On Exit

Su posición volverá a la inicial.

Práctica Movimiento

Crea un proyecto 2D e implementa los siguientes elementos:

Sprite 1

Podremos moverlo con las teclas WASD.

Evita que pueda salir del campo de visión de la cámara impidiendo que avance a partir de ciertos límites laterales y superiores.

 

Sprite 2

Podremos moverlo con las flechas del teclado.

Evita que pueda salir del campo de visión de la cámara haciendo que se teletransporte al lado contrario. Por ejemplo, si sale por la zona izquierda de la pantalla, que aparezca por la zona de la derecha.

Práctica Toggle de objetos

Práctica toggle de objetos.

Crea un proyecto y distribuye un total de 3 cubos sobre un plano e implementa los siguientes comportamientos para los cubos:

Cubo 1:

Cuando iniciemos el juego, se desactivará.

Cuando pulsemos la tecla espacio, se activará.

Cubo 2:

Comenzará desactivado.

Cuando pulsemos la tecla “q”, se activará.

Cubo 3:

Comenzará activado.

Si pulsamos la tecla espacio, su activación se alternará (activado-desactivado-activado-desactivado…).

Práctica Métodos

Práctica métodos

  1. Crea un método que realice la suma de dos variables numéricas y devuelva el resultado por consola.
  2. Crea un método que sume dos números aleatorios cada vez que se activa el objeto.
  3. Crea un método que añada 1 número aleatorio de 1 a 10 a una variable, otro le reste 2 a esa variable y asigne el resultado a una variable, y otro método que muestre por consola el valor obtenido. 
Haz que, llamando solo al primer método en el Start, se ejecute todo el flujo.

Prácticas Bucles

 

Crea un programa que muestre los números del 0 al 10 por consola.
Amplía el ejercicio anterior para que los muestre en una sola línea.
Crea un programa que muestre únicamente los números pares que haya desde 0 hasta 10.
Crea un programa que muestre únicamente los números pares que haya desde 0 hasta el valor que indiquemos nosotros en una variable.
Crea un programa que muestre por consola los resultados de la tabla de multiplicar del 1 al 10 del número 5.
Crea un programa que muestre la tabla de multiplicar del 1 al 10 del número que se haya indicado en una variable.
Crea un programa que haga un patrón que se asemeje a una pirámide con asteriscos. Debe tener el número de columnas que se le indique a través de un número entero.

int columns = 5;

*

* *

* * *

* * * *

* * * * *

 

Crea un programa que calcule el factorial del valor de una variable numérica. El factorial de un número es la suma de los productos de todos los valores que van desde 1 hasta él mismo.

Factorial de 5 = 1 * 2 * 3 * 4 * 5 = 120

Crea un programa que sume todos los números que hay desde 0 hasta el número indicado en una variable. Ejemplo:

int n = 5;

El valor mostrado por consola será: 15 ( 1 + 2 + 3 + 4 + 5 ).

Crea un programa que, partiendo de dos variables numéricas a las que le asignaréis los valores desde el inspector, muestre por consola los números que van desde la primera hasta la segunda. Ejemplo:

int a = 2;

int b = 7;

resultado por consola:

3

4

5

6

Amplía el ejercicio anterior para que, si la primera variable es mayor que la segunda, aparezca un mensaje en consola indicando que los valores introducidos no son correctos y entonces no se ejecute el bucle.

 

__________________

 

Solución
Crea un programa que muestre los números del 0 al 10 por consola.

    //Creamos la variable que usaremos como contador.
    public int n = 0;

    private void Start()
    {
        //Con un bucle for una instrucción las veces necesarias mientras que el valor de «i» sea inferior o igual a 10.
        for (int i = 0; i <= 10; i++)
        {
            //Dicha instrucción muestra por consola el valor de «n» y además, incrementa su valor en 1 después de mostrarlo.
            Debug.Log(n++);
        }
    }

Amplía el ejercicio anterior para que los muestre en una sola línea.

    //Creamos la variable que usaremos como contador.
    public int n = 0;
    //Creamos la variable string donde iremos creando el mensaje que mostrar.
    public string message;

    private void Start()
    {
        //Con un bucle for una instrucción las veces necesarias mientras que el valor de «i» sea inferior o igual a 10.
        for (int i = 0; i <= 10; i++)
        {
            //Añadimos al mensaje el valor de n y luego le añadimos 1.
            message += n++;
        }

        //Cuando el bucle haya llegado a su fin, mostramos todo el contenido de la variable «message» por consola.
        Debug.Log(message);
    }

Crea un programa que muestre únicamente los números pares que haya desde 0 hasta 10.

    private void Start()
    {
        //Con un bucle for una instrucción las veces necesarias mientras que el valor de «i» sea inferior o igual a 10.
        for (int i = 0; i <= 10; i++)
        {
            //Para cada iteración del bucle, comprobamos si el valor de «i» es par. Para eso, usamos la operación «módulo», que realiza una división y nos devuelve el resto de la misma.
            //Si dividimos cualquier número entre 2 y el resto es 0, quiere decir que ese número es par.
            if (i % 2 == 0)
            {
                //Entonces, lo mostramos por consola.
                Debug.Log(i);
            }
        }
    }

Crea un programa que muestre únicamente los números pares que haya desde 0 hasta el valor que indiquemos nosotros en una variable.

    //Creamos la variable int que usaremos para indicar hasta qué valor queremos llegar.
    public int n;

    private void Start()
    {
        //Con un bucle for una instrucción las veces necesarias mientras que el valor de «i» sea inferior o igual a la variable que creamos.
        for (int i = 0; i <= n; i++)
        {
            //Para cada iteración del bucle, comprobamos si el valor de «i» es par. Para eso, usamos la operación «módulo», que realiza una división y nos devuelve el resto de la misma.
            //Si dividimos cualquier número entre 2 y el resto es 0, quiere decir que ese número es par.
            if (i % 2 == 0)
            {
                //Entonces, lo mostramos por consola.
                Debug.Log(i);
            }
        }
    }

Crea un programa que muestre por consola los resultados de la tabla de multiplicar del 1 al 10 del número  5.

    private void Start()
    {
        //Con un bucle for una instrucción las veces necesarias mientras que el valor de «i» sea inferior o igual a 10.
        for (int i = 0; i <= 10; i++)
        {
            //Mostramos por consola el resultado de la multiplicación de 5 por cada valor de «i».
            Debug.Log(5 * i);
        }
    }

Crea un programa que muestre la tabla de multiplicar del 1 al 10 del número que se haya indicado en una variable.

    //Creamos la variable int que determina de qué valor obtendremos la tabla de multiplicar.
    public int n;

    private void Start()
    {
        //Con un bucle for una instrucción las veces necesarias mientras que el valor de «i» sea inferior o igual a 10.
        for (int i = 0; i <= 10; i++)
        {
            //Mostramos por consola el resultado de la multiplicación del valor almacenado en «n» por cada valor de «i».
            Debug.Log(n * i);
        }
    }

Crea un programa que cree el número de columnas que se le indica en una variable. En cada columna se escribirá un número más que en la anterior partiendo desde 0 hasta llegar al número indicado.

int columns = 5;

0

0 1

0 1 2

0 1 2 3

0 1 2 3 4

0 1 2 3 4 5

Pista: usa el operador += y una variable de tipo string.

    //Creamos la variable int que determina la cantidad de columnas que se crearán.
    public int columns;
    //También necesitamos una string para ir almacenando el mensaje a mostrar.
    public string message;

    private void Start()
    {
        //Con un bucle for una instrucción las veces necesarias mientras que el valor de «i» sea inferior o igual al número de columnas que queremos mostrar.
        for (int i = 0; i <= columns; i++)
        {
            //Añadimos al mensaje el valor de «i».
            //De esta forma, cada vez que se repite el bucle, al valor previo del mensaje se le añade el siguiente valor de «i».
            message += i;
            //También le vamos a añadir un espacio después de añadir el valor.
            message += » «;

            //Por último, debemos mostrar el valor del mensaje por consola.
            Debug.Log(message);
        }
    }

Crea un programa que calcule el factorial del valor de una variable numérica. El factorial de un número es la suma de los productos de todos los valores que van desde 1 hasta él mismo.

Factorial de 5 = 1 * 2 * 3 * 4 * 5 = 120

    //Creamos la variable que determina el número del que queremos obtener el valor factorial.
    public int n;
    //Creamos la variable donde iremos almacenando los resultados de distintas multiplicaciones. Al final, en esta variable aparecerá el valor del factorial del número almacenado en «n».
    //Es importante que su valor inicial sea 1.
    public int result = 1;

    private void Start()
    {
        //Necesitamos un bucle for cuya variable «i» empiece con el valor 1, ya que si fuese 0 al multiplicarlo obtendriamos siempre el resultado 0.
        for (int i = 1; i <= n; i++)
        {
            //Para cada iteración, almacenamos en la variable «result» la multiplicación de su propio valor por el de «i». Si quisieramos el factorial de 5, el flujo sería el siguiente:
            /* 1 * 1 = 1
            * 1 * 2 = 2
            * 2 * 3 = 6
            * 6 * 4 = 24
            * 24 * 5 = 120
            */
            result *= i;
        }

        //Cuando el bucle termina su ejecución, mostramos el resultado por consola.
        Debug.Log(result);
    }

 

Crea un programa que sume todos los números que hay desde 0 hasta el número indicado en una variable. Ejemplo:

int n = 5;

El valor mostrado por consola será: 15 ( 1 + 2 + 3 + 4 + 5 ).

    //Creamos la variable para determinar hasta qué número queremos hacer la suma.
    public int n;
    //En esta variable iremos acumulando el valor de las sumas.
    public int result;

    private void Start()
    {
        //Necesitamos un bucle for que se repita tantas veces como el valor almacenado en la variable «n». Hacemos que el valor de «i» empiece siendo 1 para evitar la suma del valor 0.
        for (int i = 1; i <= n; i++)
        {
            result += i;
        }

        //Cuando el bucle ha terminado, mostramos el resultado por consola.
        Debug.Log(result);
    }

Crea un programa que, partiendo de dos variables numéricas a las que le asignaréis los valores desde el inspector, muestre por consola los números que van desde la primera hasta la segunda. Ejemplo:

int a = 2;

int b = 7;

resultado por consola:

3

4

5

6

7

    //Creamos las dos variables que usaremos para determinar el rango de valores.
    public int a;
    public int b;

    private void Start()
    {
        //Creamos un bucle for haciendo que el valor de «i» empiece siendo el de la primera variable, y que se repita hasta alcanzar el valor de la segunda variable.
        for (int i = a; i <= b; i++)
        {
            //Para cada iteración, mostramos el valor de «i» por consola.
            Debug.Log(i);
        }
    }

Amplía el ejercicio anterior para que, si la primera variable es mayor que la segunda, aparezca un mensaje en consola indicando que los valores introducidos no son correctos y entonces no se ejecute el bucle.

    //Creamos las dos variables que usaremos para determinar el rango de valores.
    public int a;
    public int b;

    private void Start()
    {
        //Creamos una condición donde comprobamos si «b» es mayor que «a».
        if (b > a)
        {
            //De ser así, mostramos un mensaje en consola.
            Debug.Log(«El valor de la variable b no puede ser mayor que el valor de a.»);
        } else //Si dicha condición no se cumple, entonces podemos ejecutar el bucle.
        {
            //Creamos un bucle for haciendo que el valor de «i» empiece siendo el de la primera variable, y que se repita hasta alcanzar el valor de la segunda variable.
            for (int i = a; i <= b; i++)
            {
                //Para cada iteración, mostramos el valor de «i» por consola.
                Debug.Log(i);
            }
        }
    }

Práctica Condicionales

Práctica condicionales

Declaración if

Crea una declaración condicional en la que se entrará si el valor de la variable a es mayor que el de la variable b.
Crea una declaración condicional en la que se entrará si el valor de la variable b es menor o igual que el de la variable a.
Crea una declaración condicional en la que se entrará cuando el valor de la variable a sea el mismo al de la variable b.
Crea 5 variables de tipo int y asígnales el valor que tú quieras. Después, crea un programa que diga cuál es el valor máximo de todos ellos. 
Amplía el ejercicio anterior para que me diga también cuál es el mínimo.

Declaración if + else

Crea un programa que diga si dos variables de tipo string son distintas o iguales.
Crea un programa que diga si un número es positivo o negativo.
Crea un programa que diga si un número es par o impar.

Declaración else if

Crea un programa que mostrará un mensaje en consola dependiendo de la temperatura actual. Si es mayor de 30º, “Hace calor”, si es menor de 20º, “Hace frío”, en cualquier otro caso, “La temperatura es ideal”.

______________________

Declaración if

Crea una declaración condicional en la que se entrará si el valor de la variable a es mayor que el de la variable b.

    public int a;
    public int b;

    private void Start()
    {
        if (a > b)
        {

        }
    }

 

Crea una declaración condicional en la que se entrará si el valor de la variable b es menor o igual que el de la variable a.

    public int a;
    public int b;

    private void Start()
    {
        if (b <= a)
        {

        }
    }

 

Crea una declaración condicional en la que se entrará cuando el valor de la variable a sea el mismo al de la variable b.

    public int a;
    public int b;

    private void Start()
    {
        if (a == b)
        {

        }
    }

 

Declaración if + else

Crea un programa que diga si dos variables de tipo string son distintas o iguales.

    public string firstMessage;
    public string secondMessage;

    private void Start()
    {
        if (firstMessage == secondMessage)
        {
            Debug.Log(«Las dos variables tienen el mismo valor.»);
        } else
        {
            Debug.Log(«Las dos variables tienen valores diferentes.»);
        }
    }

 

Crea un programa que diga si un número es positivo o negativo.

    public int n;

    private void Start()
    {
        if (n < 0)
        {
            Debug.Log(«El valor de la variable n es negativo.»);
        } else
        {
            Debug.Log(«El valor de la variable n es positivo.»);
        }
    }

 

Crea un programa que diga si un número es par o impar.

    public int n;

    private void Start()
    {
        if (n % 2 == 0)
        {
            Debug.Log(«El valor de n es par.»);
        } else
        {
            Debug.Log(«El valor de n es impar.»);
        }
    }

 

Crea 5 variables de tipo int y asígnales el valor que tú quieras. Después, crea un programa que diga cuál es el valor máximo de todos ellos. 

    public int n1, n2, n3, n4, n5;
    public int max;

    private void Start()
    {
        max = n1;

        if (max > n2)
        {
            max = n2;
        }

        if (max > n3)
        {
            max = n3;
        }

        if (max > n4)
        {
            max = n4;
        }

        if (max > n5)
        {
            max = n5;
        }

        Debug.Log(«El valor máximo es:» + max);
    }

 

Amplía el ejercicio anterior para que me diga también cuál es el mínimo.

    public int n1, n2, n3, n4, n5;
    public int max;
    public int min;

    private void Start()
    {
        max = n1;

        if (max > n2)
        {
            max = n2;
        }

        if (max > n3)
        {
            max = n3;
        }

        if (max > n4)
        {
            max = n4;
        }

        if (max > n5)
        {
            max = n5;
        }

        Debug.Log(«El valor máximo es:» + max);

        min = n1;

        if (min < n2)
        {
            min = n2;
        }

        if (min < n3)
        {
            min = n3;
        }

        if (min < n4)
        {
            min = n4;
        }

        if (min < n5)
        {
            min = n5;
        }

        Debug.Log(«El valor mínimo es:» + min);
    }

 

 

Declaración else if

Crea un programa que mostrará un mensaje en consola dependiendo de la temperatura actual. Si es mayor de 30º, “Hace calor”, si es menor de 20º, “Hace frío”, en cualquier otro caso, “La temperatura es ideal”.

    public float temp;

    private void Start()
    {
        if (temp > 30)
        {
            Debug.Log(«Hace calor.»);
        } else if (temp < 20)
        {
            Debug.Log(«Hace frío.»);
        } else
        {
            Debug.Log(«La temperatura es ideal.»);
        }
    }

 

Práctica Variables

Práctica variables

1. Describe a continuación los siguientes tipos de variables:

    1. String.
    2. Int.
    3. Char.
    4. Float.
    5. Bool.

2. Propón un nombre para las variables que crearíamos en los siguientes casos:

  1. Cantidad de enemigos que se crean en una oleada.
  2. Munición que tenemos disponible en el arma que estamos usando.
  3. Madera de la que disponemos para la construcción de un edificio.
  4. Contador para la cantidad de veces que hemos abierto cofres.
  5. Contador para la cantidad de veces que hemos hablado con un personaje.
  6. Daño que produce el ataque del jugador a los enemigos.
  7. Tiempo de cooldown para reutilizar la habilidad especial.

3. Dada la situación y el nombre asignado a la variable, argumenta las razones por las cuales deberíamos o no deberíamos mantener el nombre de la variable. Si no hubiera que mantenerlo, propón un nombre nuevo.

Nombre Situación
tiempoDisparo Cooldown que aplicaremos al disparo del personaje. Entre disparo y disparo tendrá que pasar ese tiempo.
isGrounded Si su valor es true, quiere decir que el personaje está tocando el suelo.
stop Distancia a la que se detendrá el personaje respecto a su objetivo.
currentHealth Cantidad máxima de vida que puede tener el jugador.
fuerzaAtrás Fuerza del knockback que se aplica cuando el personaje recibe daño.

4. Pon un nombre a las variables para los siguientes casos. Indica de qué tipo la crearías y por qué.

    1. Fuerza de la gravedad que aplicamos sobre nuestro personaje.
    2. Distancia que puede recorrer una flecha.
    3. Letra del piso en el que vive un personaje.
    4. Para saber si el personaje se encuentra tocando el suelo.
    5. Número de veces que el jugador ha completado el juego.
    6. Para indicar si el juego está pausado o no.
    7. Cantidad de ráfagas que podemos disparar con nuestra pistola.
    8. Nombre del acompañante del protagonista.

5. Indica el valor que devolverían las siguientes operaciones.

    1. 1 + 2 + 5 =
    2. 2 * 9 + 5 =
    3. 10 / 2 * 5 =
    4. (100 / 20 * 5) % 2 =

6. Comenta el funcionamiento de los siguientes operadores:

    1. +
    2. *
    3. /
    4. %

7. Indica el valor que devolverían las siguientes operaciones.

    1. 10 < 2 =
    2. 3 * 5 >= 25 =
    3. 15 % 5 == 0
    4. 10 < 10 =
    5. 10 <= 10 =
  1.  

8. Para cada una de las siguientes conversiones, indica si es posible o no. Si no lo es, explica la razón de manera clara.

int a = 98;

float b = 5.8f;

a = b;

string a = «H»;

char b = ‘b’;

a = b;

Práctica Recreación de Escenas

Práctica recreación de escenas

Recreación de escenas

Replica las escenas que puedes ver en las imágenes de forma que sea lo más similar posible. Utiliza todo lo que has aprendido del manejo de la interfaz de Unity.

Atajos de teclado para herramientas de edición de escena:

Desplazamiento: W.

Rotación: E.

Escala: R.

Transformación: T.

Recuerda: haz uso de los distintos tipos de desplazamiento disponibles para colocar correctamente los objetos.

  • Snapeo: mover un objeto mientras pulsamos la tecla CTRL.
  • Vertex snap: mover un objeto mientras pulsamos la tecla V.

Recuerda también el atajo de teclado CTRL + SHIFT + F para posicionar la cámara en el punto donde tenemos situada la vista en la escena.

 

  1. Cementerio.
  2.  Parque Infantil
  3. Granja

    .

    Para la entrega, haz una captura de pantalla de cada escenario y sube los archivos a una carpeta de Drive. Comparte la carpeta y déjanos el enlace en el apartado de entrega de tarea. 

Evad Online - Solicitud tutoría

¿Qué formación te gustaría encontrar en nuestra escuela?