Rotten Studios - Defiende Tu Kaabluum

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

Moderator: julianmartinez16

User avatar
ScarHand420
Posts: 22
Joined: Thu Jul 26, 2018 6:24 am

Rotten Studios - Defiende Tu Kaabluum

Post by ScarHand420 » Thu Jul 26, 2018 6:39 am

Integrantes
  • Jose Vidal.
  • Jeferson Alvarez.
  • Carlos Morales.
Repositorio GitHub

https://github.com/ScarHand420/Rotten-Studios-DTK

Historia

El imperio otomano al enterarse de las riquezas que poseía el nuevo continente deciden adentrarse a este en busca de riquezas y fortuna, sin importar si deben destruir civilizaciones, luego de conquistar a los chibchas y a los incas, la civilización maya decide hacer planes de defensa y evitar que los otomanos roben sus mas valiosos recursos.
Last edited by ScarHand420 on Thu Aug 09, 2018 3:00 am, edited 3 times in total.
Carlos Andrés Morales Albarán
  • Programación y diseño orientado a objetos.
:twisted: "~CY@~" :twisted:
-NB3-

User avatar
ScarHand420
Posts: 22
Joined: Thu Jul 26, 2018 6:24 am

Rotten Studios - Defiende Tu Kaabluum

Post by ScarHand420 » Thu Jul 26, 2018 6:51 am

Last edited by ScarHand420 on Tue Jul 31, 2018 6:27 am, edited 2 times in total.
Carlos Andrés Morales Albarán
  • Programación y diseño orientado a objetos.
:twisted: "~CY@~" :twisted:
-NB3-

User avatar
98jam
Posts: 9
Joined: Mon Feb 01, 2016 8:28 am

Re: Rotten Studios - Defiende Tu Kaabluum

Post by 98jam » Thu Jul 26, 2018 7:05 am

Last edited by 98jam on Tue Jul 31, 2018 6:30 am, edited 1 time in total.
Jeferson Alvarez Mesa OOP

User avatar
ScarHand420
Posts: 22
Joined: Thu Jul 26, 2018 6:24 am

Rotten Studios - Defiende Tu Kaabluum

Post by ScarHand420 » Tue Jul 31, 2018 6:14 am

Backlog Corregido.

Image
Last edited by ScarHand420 on Tue Jul 31, 2018 6:29 am, edited 2 times in total.
Carlos Andrés Morales Albarán
  • Programación y diseño orientado a objetos.
:twisted: "~CY@~" :twisted:
-NB3-

User avatar
98jam
Posts: 9
Joined: Mon Feb 01, 2016 8:28 am

Re: Rotten Studios - Defiende Tu Kaabluum

Post by 98jam » Tue Jul 31, 2018 6:16 am

¿ Qué han Hecho ?

Se definió nombre de la empresa, logo y se hizo plan de trabajo. Para el juego se definieron varios referentes, Se diseño la historia y parte de las mecánicas y estéticas del mismo. Inicio de programación y generación de mapa de juego.

¿ Qué se va a hacer ?

Bocetación del primer mundo, concept art, diseño de personajes (estéticas y mecanicas)

¿ Qué dificultades presenta ?

Realizar los ajustes pertinentes respecto a logo, completar la búsqueda de referentes.
Last edited by 98jam on Tue Jul 31, 2018 6:31 am, edited 2 times in total.
Jeferson Alvarez Mesa OOP

User avatar
ScarHand420
Posts: 22
Joined: Thu Jul 26, 2018 6:24 am

Rotten Studios - Defiende Tu Kaabluum

Post by ScarHand420 » Tue Jul 31, 2018 6:17 am

Evidencias Semana 3:

Image

Image

Code: Select all

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

public class LevelManager : MonoBehaviour {
    
    [SerializeField]
    private GameObject[] tilePrefabs;

    public float TileSize
    {
        get {return tilePrefabs[0].GetComponent<SpriteRenderer>().sprite.bounds.size.x; }
    }

	// Use this for initialization
	void Start () {

        CreateLevel();

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

    private void CreateLevel()
    {
        string[] mapData = ReadLevelText();
        /*
        string[] mapData = new string[]
        {
            "0000","1111","2222","3333","4444","5555"
        };
        */
        int mapXSize = mapData[0].ToCharArray().Length;
        int mapYSize = mapData.Length;

        //float tileSize = tile.GetComponent<SpriteRenderer>().sprite.bounds.size.x;

        Vector3 worldStart = Camera.main.ScreenToWorldPoint(new Vector3(0, Screen.height));

        for(int y =0; y < mapYSize; y++)
        {

            char[] newTiles = mapData[y].ToCharArray();

            for (int x = 0; x < mapXSize; x++)
            {
                PlaceTile(newTiles[x].ToString(),x,y, worldStart);
            }
        }
    }

    private void PlaceTile(string tileType, int x, int y, Vector3 worldStart)
    {
        int tileIndex = int.Parse(tileType);

        GameObject newTile = Instantiate(tilePrefabs[tileIndex]);
        newTile.transform.position = new Vector3(worldStart.x + (TileSize * x), worldStart.y - (TileSize * y), 0);
    }

    private string[] ReadLevelText()
    {
        TextAsset bindData = Resources.Load("Level") as TextAsset;

        string data = bindData.text.Replace(Environment.NewLine, string.Empty);

        return data.Split('-');
    }

}
Last edited by ScarHand420 on Tue Jul 31, 2018 6:28 am, edited 1 time in total.
Carlos Andrés Morales Albarán
  • Programación y diseño orientado a objetos.
:twisted: "~CY@~" :twisted:
-NB3-

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

Re: VIDMOR STUDIOS - DEFIENDE TU KAABLUUM

Post by xacarana » Tue Jul 31, 2018 6:20 am

Image
  • Faltan las foto de perfile de los integrantes, sino esta para la próxima clase es un strike, en preguntas frecuentes encuentran como hacerlo por si tienen algun inconveniente.
  • Cambiar el nombre del post, para que no aparezca todo en mayúscula
Andrés Bedoya Tobón
Profesor
"I only smile in the dark, I only smile when it's complicated" Raybiez

User avatar
ScarHand420
Posts: 22
Joined: Thu Jul 26, 2018 6:24 am

Re: Rotten Studios - Defiende Tu Kaabluum

Post by ScarHand420 » Thu Aug 02, 2018 4:25 am

¿ Qué han Hecho ?

Se crearon texturas propias, de prueba por el momento, se arreglo un problema en la generación de mapa, y se creo un script para el movimiento de la cámara usando el teclado.

¿ Qué se va a hacer ?

Continuar con el Backlog, desarrollando la estética del juego como los sprites y demás acorde a la historia planteada. y en cuanto a programación, se espera empezar con el sistema de generación de oleadas.

¿ Qué dificultades presenta ?

Realizar los ajustes pertinentes respecto a logo y al nombre de la empresa.


Movimiento de Camara.


Image


CameraMovement Script.

Code: Select all

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

public class CameraMovement : MonoBehaviour {

    [SerializeField]
    private float cameraSpeed = 0;

    private float xMax;
    private float yMin;

	// Use this for initialization
	void Start () {
		
	}
	
	// Update is called once per frame
	private void Update () {

        GetInput();
		
	}

    private void GetInput()
    {
        if (Input.GetKey(KeyCode.W))
        {
            transform.Translate(Vector3.up * cameraSpeed * Time.deltaTime);
        }
        if (Input.GetKey(KeyCode.A))
        {
            transform.Translate(Vector3.left * cameraSpeed * Time.deltaTime);
        }
        if (Input.GetKey(KeyCode.S))
        {
            transform.Translate(Vector3.down * cameraSpeed * Time.deltaTime);
        }
        if (Input.GetKey(KeyCode.D))
        {
            transform.Translate(Vector3.right * cameraSpeed * Time.deltaTime);
        }

        transform.position = new Vector3(Mathf.Clamp(transform.position.x, 0, xMax), Mathf.Clamp(transform.position.y, yMin, 0),-10);

    }

    public void SetLimits(Vector3 maxTile)
    {
        Vector3 wp = Camera.main.ViewportToWorldPoint(new Vector3(1, 0));

        xMax = maxTile.x - wp.x;
        yMin = maxTile.y - wp.y;
    }

}

LevelManager Script.

Code: Select all

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

public class LevelManager : MonoBehaviour {
    
    [SerializeField]
    private GameObject[] tilePrefabs;

    [SerializeField]
    private CameraMovement cameraMovement;

    public float TileSize
    {
        get {return tilePrefabs[0].GetComponent<SpriteRenderer>().sprite.bounds.size.x; }
    }

	// Use this for initialization
	void Start () {

        CreateLevel();

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

    private void CreateLevel()
    {
        string[] mapData = ReadLevelText();
        /*
        string[] mapData = new string[]
        {
            "0000","1111","2222","3333","4444","5555"
        };
        */
        int mapXSize = mapData[0].ToCharArray().Length;
        int mapYSize = mapData.Length;

        Vector3 maxTile = Vector3.zero;

        //float tileSize = tile.GetComponent<SpriteRenderer>().sprite.bounds.size.x;

        Vector3 worldStart = Camera.main.ScreenToWorldPoint(new Vector3(0, Screen.height));

        for(int y =0; y < mapYSize; y++)
        {

            char[] newTiles = mapData[y].ToCharArray();

            for (int x = 0; x < mapXSize; x++)
            {
                maxTile = PlaceTile(newTiles[x].ToString(),x,y, worldStart);
            }
        }

        cameraMovement.SetLimits(new Vector3(maxTile.x +TileSize, maxTile.y -TileSize));

    }

    private Vector3 PlaceTile(string tileType, int x, int y, Vector3 worldStart)
    {
        int tileIndex = int.Parse(tileType);

        GameObject newTile = Instantiate(tilePrefabs[tileIndex]);
        newTile.transform.position = new Vector3(worldStart.x + (TileSize * x), worldStart.y - (TileSize * y), 0);

        return newTile.transform.position;
    }

    private string[] ReadLevelText()
    {
        TextAsset bindData = Resources.Load("Level") as TextAsset;

        string data = bindData.text.Replace(Environment.NewLine, string.Empty);

        return data.Split('-');
    }

}
Carlos Andrés Morales Albarán
  • Programación y diseño orientado a objetos.
:twisted: "~CY@~" :twisted:
-NB3-

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

Re: Rotten Studios - Defiende Tu Kaabluum

Post by xacarana » Thu Aug 02, 2018 6:17 am

Muy bien por el avance, :!: esta pendiente la firma y actualizar el primer post con la historia.

Image
Andrés Bedoya Tobón
Profesor
"I only smile in the dark, I only smile when it's complicated" Raybiez

User avatar
ScarHand420
Posts: 22
Joined: Thu Jul 26, 2018 6:24 am

Re: Rotten Studios - Defiende Tu Kaabluum

Post by ScarHand420 » Thu Aug 09, 2018 2:54 am

Avances 4 Semana.

¿ Qué han Hecho ?

Se mejoraron las texturas propias, se hicieron los spawnpoints de los enemigos(animado), se empezó con el sistema de torres y se arreglo el sistema de niveles(Ahora funciona a la perfección crear niveles desde un archivo txt).

¿ Qué se va a hacer ?

Lo pendiente para la quinta semana: tener el sistema de torres, oleadas de enemigos. y ajustar la estética del juego a la narrativa del mismo.

¿ Qué dificultades presenta ?

Hay un pequeño bug que desaparece los objetos en escena por un par de frames, el github no actualizo las versiones ni publico los cambios.
Se espera crear uno nuevo o intentar solucionar el problema.(Github CORREGIDO) :!: , (Bug CORREGIDO) :!:

Image
Carlos Andrés Morales Albarán
  • Programación y diseño orientado a objetos.
:twisted: "~CY@~" :twisted:
-NB3-

Post Reply