MasterBlind Defender- tecnoagames JEAN

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

Moderator: julianmartinez16

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

Re: MasterBlind Defender- tecnoagames JEAN

Post by anderson_olarte11 » Thu Mar 14, 2019 8:46 pm

Actividad #6 movimiento dragón

Nombre tarea__________________________________________esfuerzo
configuración del movimiento del dragón (Miguel)________________3

¿Qué hemos hecho?
Programamos el moviento automático del dragon para que al ser invocado por el programa pueda moverse libremente por el mapa, además de que pudimos configurar la animación para dar la impresión de que el dragón puede volar y ,así, crear la ilusión de que se mantiene suspendido en el aire.

Aún no podemos corregir el problema del cambio de posición de la cámara por lo que buscaremos otra forma de poder desplazar el apa o sino dejaremos el mapa corto pero esa no es la idea

Evidencia

Code: Select all

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

public class movedragon : MonoBehaviour
{

	public float vel = 1f;
	Rigidbody2D rgb;


	void Start()
	{
		rgb = GetComponent<Rigidbody2D>();

	}

	void FixedUpdate()
	{
		Vector2 v = new Vector2(vel, 0);
		rgb.velocity = v;


	}

	void OnTriggerEnter2D(Collinder2D other)
	{
		Flip();
	}
	void Flip()
	{
		vel *= 1;

		var s = transform.localScale;
		s.x *= 1;
		transform.localScale = s;

	}
}
Código del movimiento del dragón




video evidencia


¿Qué vamos a hacer?

ahora si le vamos a dar duro a la construccion del código de las torres y las oleadas para que el juego coja forma

¿Qué dudas tenemos?
ninguna
Á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 Mar 19, 2019 10:52 pm

Semana 11

Fecha inicio: 19 de marzo
Fecha fin: 26 de marzo

Actividad #6 seguimiento de la cámara

Nombre tarea______________________________________________Esfuerzo
configuración de seguimiento cámara(Ánderson)_____________________3

¿Qué hemos hecho?

Configuramos el código del seguimiento de cámara

Evidencia

Code: Select all

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

public class seguircamara : MonoBehaviour
{
	public GameObject seguir;
	public Vector2 minCamPos, maxCamPos;

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

	}

	// Update is called once per frame
	void FixedUpdate()
	{
		float posX = seguir.transform.position.x;
		float posY = seguir.transform.position.y;

		transform.position = new Vector3(
			Mathf.Clamp(posx, minCamPos.x, maxCamPos.x),
			Mathf.Clamp(posY, minCamPos.x, maxCamPos.x),
			transform.position.z);
	}
}
¿Qué vamos a hacer?
Vamos a añadir las torres y ahora con mas fuerza ;)

¿Qué dificulta tenemos?
ninguna
Jesús Miguel Serna Quispe Pdoo1

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

Re: MasterBlind Defender- tecnoagames JEAN

Post by anderson_olarte11 » Thu Mar 21, 2019 9:50 pm

semana 11

nombre tarea__________________________Esfuerzo
creación de portal_______________________3

¿Qué hemos hecho?
creamos el portal por donde van a comenzar a salir los enemigos desde un punto de origen hacia un portal de destino siguiendo una ruta preestablecida. agregamos un grid al mapa para poder ubicar puntos donde se podrán instalar torres y portales. se organizó un diccionario para enumerar los puntos que tiene cada tile

evidencia

Image

código

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;

    private Point blueSpawn, redSpawn;
    [SerializeField]
    private GameObject bluePortalPrefab;
    [SerializeField]
    private GameObject redPortalPrefab;

    

    public Dictionary<Point, TileScript> Tiles { get; set; }



    public float TileSize
    {
        get { return tilePrefabs[0].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()
    {

        Tiles = new Dictionary<Point, TileScript>();
        
        string[] mapData = ReadLevelText();
        int mapX = mapData[0].ToCharArray().Length;
        int mapY = mapData.Length;

         Vector3 maxTile = Vector3.zero;
        
            
        Vector3 worldStart = Camera.main.ScreenToWorldPoint(new Vector3(0, Screen.height));
        //obtiene el tamaño del sprite
        for (int y = 0; y < mapY; y++)
        {
            char[] newTiles = mapData[y].ToCharArray();
            for (int x = 0; x < mapX; x++)
            {
              LugarTile(newTiles[x].ToString(),x,y,worldStart); 
            }

        }

        maxTile = Tiles[new Point(mapX - 1, mapY - 1)].transform.position;


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


        SpawnPortals();
    }
    private void LugarTile(string tileType, int x, int y, Vector3 worldStart)
    {
        int tileIndex = int.Parse(tileType);
        TileScript newTile = Instantiate(tilePrefabs[tileIndex]).GetComponent<TileScript>(); 
        newTile.Setup(new Point(x, y), new Vector3(worldStart.x + (TileSize * x * 3.0f), worldStart.y - (TileSize * y * 3.0f), 0));

        Tiles.Add(new Point(x, y), newTile);

    }
    private string[] ReadLevelText()
    {
        TextAsset bindData = Resources.Load("Level") as TextAsset;
        string data = bindData.text.Replace(Environment.NewLine, string.Empty);
        return data.Split('-');
    }

    private void SpawnPortals()
    {
        blueSpawn = new Point(0, 0);
        Instantiate(bluePortalPrefab, Tiles[blueSpawn].transform.position, Quaternion.identity);
    }
}

Code: Select all

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

public struct Point 
{
   public int X { get; set; }
   public int Y { get; set; }

    public Point (int x, int y)
    {
        this.X = x;
        this.Y = y;
    }
}
Ánderson Olarte Martínez POO grupo1
"y la luna sirve para mirarla mucho" Lugones

Post Reply