MasterBlind Defender- tecnoagames JEAN

Programación Orientada a Objetos (Tower defense - kingdom rush)

Moderator: julianmartinez16

User avatar
anderson_olarte11
Posts: 8
Joined: Tue Jan 22, 2019 12:17 pm

MasterBlind Defender- tecnoagames JEAN

Post by anderson_olarte11 » Tue Jan 29, 2019 8:03 am

Ánderson Olarte Martínez POO grupo1
"y la luna sirve para mirarla mucho" Lugones

User avatar
anderson_olarte11
Posts: 8
Joined: Tue Jan 22, 2019 12:17 pm

Re: MasterBlind Defender- tecnoagames JEAN

Post by anderson_olarte11 » Mon Feb 04, 2019 1:36 pm

Sprint #2 - semana 2

:!: :arrow: Ojo, el tiempo debe ser una semana

Fecha inicio: Febrero 1
Fecha fin: Febrero 4

Actividad #2- Análisis y observación de referencia

nombre tarea__________________________esfuerzo
1. Análisis de metodología "tower defense" ______2
2. Revisión de juegos de referencia_____________2
3. Revisión de presentaciones de ayuda__________3

¿Qué hemos hecho?
  • Hemos leído sobre los juegos de muestra y avanzamos en la definición del alcance de las habilidades de los héroes y villanos para no volver el juego ni muy sencillo ni imposible de pasar.
  • Probamos un par de videojuegos conocidos para entender las dinámicas de los juegos "tower defense" (comprender sistemas de puntuación, perdida de la partida,pasar de nivel. etc.)
  • Dimos un vistazo al kit de medios de Kingdom Rush para formarnos una idea de las habilidades que podían tener las estructuras de defensa y los personajes de ataque
    (enlace kit de medios https://presskit.kingdomrushvengeance.c ... diakit.zip)


Evidencia


Image


Descripción Kingdom Rush

Image


¿Qué vamos a hacer?
  • Seguiremos formando la idea principal del juego para continuar con la creación de personajes
  • Pasar el nivel 4 de kingdom Rush


¿Qué dificultad tenemos?
Ninguna por el momento
Ánderson Olarte Martínez POO grupo1
"y la luna sirve para mirarla mucho" Lugones

User avatar
Miguel_Serna
Posts: 4
Joined: Tue Jan 22, 2019 12:17 pm

Re: MasterBlind Defender- tecnoagames JEAN

Post by Miguel_Serna » Wed Feb 06, 2019 10:47 pm

¿Qué hemos hecho?

jugar Kingdom Rush para tomar como referencia para el inicio de la creación del escenario de juego

Image

:!: :arrow: Falta las evidencias, jugar no es una actividad que tenga un avance, a no ser que muestren bocetos, ideas, etc, de lo que toman como referencia

¿Qué vamos a hacer?
  • Ya hemos recogido datos importantes para la creación del juego y ahora para el siguiente Sprint vamos ya hacer los bocetos.
¿Qué dificultades hemos tenido?
por el momento ninguno
Jesús Miguel Serna Quispe Pdoo1

User avatar
anderson_olarte11
Posts: 8
Joined: Tue Jan 22, 2019 12:17 pm

Re: MasterBlind Defender- tecnoagames JEAN

Post by anderson_olarte11 » Tue Feb 12, 2019 7:56 am

Sprint #3 semana 3

Fecha inicio: 9 de febrero
Fecha fin: 16 de febrero

Actividad #3--Bosquejo de personajes y escenarios


Nombre tarea__________________________________esfuerzo
  • Hacer dibujo de caballeros (Anderson)_____________________3
  • Realizar bosquejo de loas torres de defensa(J.Miguel)________3
¿Qué hemos hecho?
Realizamos el dibujo de dos de los caballeros que actuarán como defensores de la ruta.
Logramos hacer el bosquejo de las torres de defensa del videojuego

Evidencia


Image


Image


Image


Image


¿Qué vamos a hacer?

terminaremos los dibujos de las actividades que son el de los dragones y el trazado de la ruta

¿Qué dificultades hemos tenido?

ninguna por el momento
Ánderson Olarte Martínez POO grupo1
"y la luna sirve para mirarla mucho" Lugones

User avatar
anderson_olarte11
Posts: 8
Joined: Tue Jan 22, 2019 12:17 pm

Re: MasterBlind Defender- tecnoagames JEAN

Post by anderson_olarte11 » Wed Feb 13, 2019 8:57 pm

Sprint #3 semana 3

Fecha inicio: febrero 9
fecha fin: febrero 16

Actividad #3--bosquejo de personajes y escenarios

Nombre tarea__________________________________Esfuerzo
  • realizar boceto del mapa(Anderson)_______________2
  • realizar dibujo de los enemigos(Miguel)____________2
¿Qué hemos hecho?
-Terminamos de hacer los dibujos restantes del videojuego que eran las rutas y las posiciones donde van las torres de defensa, además de pensar y diseñar como serán los enemigos del videojuego.
-Aprovechamos el tiempo debido a la cancelación de clases de esta semana para explorar un poco en los tutoriales subidos en esta página acerca de la creación de juegos en Unity y pudimos observar cosas interesantes como por ejemplo, el añadir propiedades de colisión a los objetos

Evidencia
-Image
Image
Image

¿Qué vamos a hacer?
-Utilizaremos el resto de la semana para explorar la plataforma Unity ya que es una herramienta nueva para nosotros para luego comenzar con la actividad 4 del cronograma

¿Qué inconveniente hemos tenido?
Hasta el momento, ninguno
Ánderson Olarte Martínez POO grupo1
"y la luna sirve para mirarla mucho" Lugones

User avatar
Miguel_Serna
Posts: 4
Joined: Tue Jan 22, 2019 12:17 pm

Re: MasterBlind Defender- tecnoagames JEAN

Post by Miguel_Serna » Tue Feb 19, 2019 9:58 pm

Sprint #4 semana 4

Fecha inicio: febrero 19
fecha fin: febrero 26

Actividad #4--inicio de creación de código

Nombre tarea__________________________________Esfuerzo
Digitalizacion de la torre(Anderson)_______________2
Primeros códigos para la torre(Miguel)____________2
¿Qué hemos hecho?
  • Empezamos con la herramienta unity para la digitalizacion.
  • Tambien empezamos ya a hacer los primeros códigos ara la clase torre.
Evidencia
Image

Code: Select all

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class NewBehaviourScript : MonoBehaviour {

	private float altura_maxima;
	private float altura_minima;
	private float RateSpawn;
	private float CurrentRateSpawn;
	private GameObject Prefab;
	private List<GameObject> Enemigo;
	private int maximo_enemigos;
	private float posicion_azar;

	// Usa esto para la inicialización
	void Start()
	{

		for (int i = 0; i < maximo_enemigos; i++)


		{
			GameObject enemigo_Temporal = Instantiate(Prefab) as GameObject;
			Enemigo.Add(enemigo_Temporal);
			enemigo_Temporal.SetActive(false);
		}
	}

	// La actualización se llama una vez por trama
	void Update()
	{

		CurrentRateSpawn = CurrentRateSpawn + Time.deltaTime;
		if (CurrentRateSpawn > RateSpawn)
		{
			CurrentRateSpawn = 0;

			Spawnn(); //Mandar a llamar el metodo Spawn
		}

	}
	//Metodo Spawn
	void Spawnn()
	{

		int azarPos = Random.Range(0, 9);
		if (azarPos < 5)
		{
			posicion_azar = altura_maxima;
		}
		else
		{
			posicion_azar = altura_minima;
		}
		GameObject enemigo_Temporal = null;
		for (int i = 0; i < maximo_enemigos; i++)
			if (Enemigo[i].activeSelf == false)
			{
				enemigo_Temporal = Enemigo[i]; break;
			}

		if (enemigo_Temporal != null)
		{
			enemigo_Temporal.transform.position = new Vector3(transform.position.x, posicion_azar, transform.position.z);
			enemigo_Temporal.SetActive(true);
		}

	}



}
¿Qué vamos a hacer?
  • seguiremos explorando unity y la par estaremos terminado con lo que es el escenario del juego y los enemigos
¿Qué inconveniente hemos tenido?
por ahora manejar unity ya que es nuevo para nosotros, pero ya solucionamos este inconveniente.
Jesús Miguel Serna Quispe Pdoo1

User avatar
anderson_olarte11
Posts: 8
Joined: Tue Jan 22, 2019 12:17 pm

Re: MasterBlind Defender- tecnoagames JEAN

Post by anderson_olarte11 » Thu Feb 21, 2019 10:42 pm

sprint #4 semana 4

nombre tarea_________________esfuerzo
creación del terreno_____________3

¿Qué hemos hecho?
hemos intentado crear el lugar donde se desarrollará el videojuego. buscamos unos sprites de tiles para utilizar en el juego. y le hemos agregado código para que comience a interactuar con el entorno.

evidencia
Image

Code: Select all

    public GameObject tile; 

    
    // Start is called before the first frame update
    void Start()
    {
        createLevel();
        float tilesSize=tile.GetComponet<spriterenderer>().sprite.bounds.size.x;
        
    }

    // Update is called once per frame
    void Update()
    {
        
    }
    private void CreateLevel()
    {
        
        for (int y = 0; i < 10; i++)
        {
            for (int x = 0; x < 10; x++)
            {
              GameObject newTile = Instantiate(tile);
                newTile.transform.position = new Vector3(tileSize * x, tileSize * y, 0);
            }
        }
        
    }
}

¿Qué vamos a hacer?
terminaremos de cuadrar el suelo porque la ruta que siguen los enemigos aun no aparece automáticamente, solo fue colocada como referencia, así que le agregaremos un script con lo necesario para que cumpla con su papel en el juego.
pasaremos a diseñar y tratar de configurar el movimiento de los enemigos por el mapa y que sigan las rutas adecuadas

¿Qué inconvenientes hemos tenido?
algunos retrasos en el avance porque gastamos mucho tiempo intentando comprender lo que estamos haciendo y nos ha generado muchos retrasos en la creación del juego
Ánderson Olarte Martínez POO grupo1
"y la luna sirve para mirarla mucho" Lugones

User avatar
anderson_olarte11
Posts: 8
Joined: Tue Jan 22, 2019 12:17 pm

Re: MasterBlind Defender- tecnoagames JEAN

Post by anderson_olarte11 » Wed Mar 06, 2019 9:54 pm

Semana 6
fecha inicio: 2 de marzo
fecha fin: 9 de marzo

Actividad #4-- mejoramiento mapa y lanzamiento de flechas

Nombre tarea Esfuerzo
  • Hacer mejoramiento del tilemap(Anderson)____________________4
  • crear algoritmo de lanzamiento de flechas(Miguel)______________4
¿Qué hemos hecho?
  • Realizamos una mejora al mapa del juego, ya que como lo habíamos configurado anteriormente se habia hecho muy ineficiente colocando uno a uno los tiles pero ya pudimos configurarlos de tal manera que se comportaran como objeto.
  • dividimos las funciones del mapa para poder extraer información como el tamaño y la ubicación para luego usarlas en otras funciones como por ejemplo las ubicaciones de las torres y las rutas de los enemigos.
  • creamos el código del lanzamiento de las flechas


evidencia

código del mapa

Code: Select all

 using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class LevelManager : MonoBehaviour
{
    [SerializeField]
    private GameObject tile; 
    public float TileSize 
    {
        get { return tile.GetComponent<SpriteRenderer>().sprite.bounds.size.x;  }
    }

    // Start is called before the first frame update
    void Start()
    {
        CreadorTerreno();   
    }

    // Update is called once per frame
    void Update()
    {
        
    }
    private void CreadorTerreno()
    {
        Vector3 worldStart = Camera.main.ScreenToWorldPoint(new Vector3(0, Screen.height));
        //obtiene el tamaño del sprite
        for (int x = 0; x < 14; x++)
        {
            for (int y = 0; y < 8; y++)
            {
                LugarTile(x,y,worldStart); 
            }

        }
    }
    private void LugarTile(int x, int y, Vector3 worldStart)
    {
        GameObject newTile = Instantiate(tile);
        newTile.transform.position = new Vector3( worldStart.x +(TileSize * x * 4.5f),worldStart.y-(TileSize * y * 4.5f), 0);
    }
}
código del lanzamiento de flechas

Code: Select all

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public enum Direccion { Horizontal, Vertical }
public class disparodeflecha : MonoBehaviour{
	
private class comportamientoEnemigo
	{
		internal int Vidas;
	}
		public int vidas;
		public Direccion DireccionArma = Direccion.Horizontal;
		public float Velocidad = 50.0F;
		private Rigidbody thisRigidbody;

		void Start()
		{
			thisRigidbody = GetComponent<Rigidbody>();
		}

		void Update()
		{
			
			if (DireccionArma == Direccion.Horizontal)
			{
				
				thisRigidbody.transform.Translate(new Vector3(Velocidad, 0, 0) * Time.deltaTime);
			}
			else
			{
				
				thisRigidbody.transform.Translate(new Vector3(0, Velocidad, 0) * Time.deltaTime);
			}
		}

		void OnTriggerEnter(Collider other)
		{
			if (other.tag == "Enemigo")
			{
				
				other.gameObject.GetComponent<comportamientoEnemigo>().Vidas--;
			
				Destroy(gameObject);
			}
		}
	}





¿Qué vamos a hacer?

vamos a continuar con la configuración de las torres y el desarrollo del código para poderlas poner en el mapa
comenzaremos con el diseño del menú y consultaremos código para el sistema de vidas y puntuación

¿Qué dificultad tenemos?
no encontramos tiles bacanos para el juego pero seguiremos buscando :D
Ánderson Olarte Martínez POO grupo1
"y la luna sirve para mirarla mucho" Lugones

User avatar
xacarana
Site Admin
Posts: 1047
Joined: Fri Jan 15, 2016 6:13 pm

Re: MasterBlind Defender- tecnoagames JEAN

Post by xacarana » Tue Mar 12, 2019 12:10 pm

Image

Falto el avance de la clase pasada
Andrés Bedoya Tobón
Profesor
"I only smile in the dark, I only smile when it's complicated" Raybiez

User avatar
anderson_olarte11
Posts: 8
Joined: Tue Jan 22, 2019 12:17 pm

Re: MasterBlind Defender- tecnoagames JEAN

Post by anderson_olarte11 » Tue Mar 12, 2019 10:17 pm

Semana 10

Fecha inicio: 9 de marzo
Fecha fin: 16 de marzo

Actividad #5 creación de rutas y acomodación de la cámara

Nombre tarea______________________________________________Esfuerzo
  • generación automática de rutas(Ánderson)_______________________4
  • configuración de seguimiento cámara(Miguel)_____________________3

¿Qué hemos hecho?

Configuramos de nuevo el mapa para agregarle un grupo de tiles y que sea más sencillo cambiar entre estilos, además, logramos agregar una función al script que pudiera leer números de un documento de texto con el fin de que los añadiera en un array, así, simplemente para agregarle el orden de los tiles solo se debe escribir en un fichero el número del objeto que queramos que aparezca y de esta forma, podremos crear otros niveles de una manera rápida y fácil sin tener que sobreescribir todo este script y además optimizando el rendimiento del juego cambiando únicamente el documento de texto que se lee.


En cuanto a la cámara, intentamos configurarla de tal manera que se pueda ir desplazando en el juego mediante el teclado del pc (flecha derecha e izquierda) pero aún no funciona correctamente, la cámara no se mueve cuando le ordenamos que lo haga. Seguiremos explorando para arreglar este error ya que con el movimiento de la cámara podremos crear un mundo más extenso horizontalmente porque por el momento no se prevé que se vayan a hacer más niveles por cuestiones de tiempo, así que queremos que sea uno un poco largo para que no nos digan perezosos!


Evidencia


video de la generación de la ruta

Code: Select all

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CameraMovement : MonoBehaviour
{
    [SerializeField]
    float cameraSpeed = 0;
    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
     void Update()
    {
        GetInput();
    }

    private void GetInput()
    {
       
        if (Input.GetKeyDown(KeyCode.W))
        {
            transform.Translate(Vector3.up * cameraSpeed * Time.deltaTime);
        }
        else if (Input.GetKeyDown(KeyCode.A))
        {
            transform.Translate(Vector3.left * cameraSpeed * Time.deltaTime);
        }
        else if (Input.GetKeyDown(KeyCode.S))
        {
            transform.Translate(Vector3.down * cameraSpeed * Time.deltaTime);
        }
        else if (Input.GetKeyDown(KeyCode.D))
        {
            transform.Translate(Vector3.right * cameraSpeed * Time.deltaTime);
        }
    }
}
Código del movimiento de la cámara (aún no funciona correctamente)

¿Qué vamos a hacer?
Vamos a añadir una cuadricula para poder ubicar por medio de coordenadas las ubicaciones de las torres

¿Qué dificulta tenemos?
Por el momento, la duda con el funcionamiento de la cámara
Ánderson Olarte Martínez POO grupo1
"y la luna sirve para mirarla mucho" Lugones

Post Reply