public BirdActivationData(int pixWidth, int pixHeight, float xOrg, float yOrg, float xScale, float yScale, ColliderMap map) { this.pixWidth = pixWidth; this.pixHeight = pixHeight; this.xOrg = xOrg; this.yOrg = yOrg; this.xScale = xScale; this.yScale = yScale; this.map = map; }
public void ActivateWithBirdData(BirdFlocker.BirdActivationData data) { transZ = FixAngle(transform.eulerAngles.z); pixWidth = data.GetPixelWidth(); pixHeight = data.GetPixelHeight(); xOrg = data.GetXOrg(); yOrg = data.GetYOrg(); xScale = data.GetXScale(); yScale = data.GetYScale(); this.map = data.GetColliderMap(); oldPosition = transform.position; map.AddBirdToTile((int)oldPosition.x, (int)oldPosition.y, this); map = data.GetColliderMap(); GetComponent <Rigidbody2D>().isKinematic = false; active = true; }
void Start() { Camera cam = Camera.main; height = 2f * cam.orthographicSize; width = height * cam.aspect; map = new ColliderMap((int)width, (int)height); cam.transform.position = new Vector3(width / 2f, height / 2f, -10f); transform.localScale = new Vector3(width, height, 1f); transform.position = new Vector3(width / 2f, height / 2f, 10f); /*rend = GetComponent<Renderer>(); * rend.material.color = Color.black;*/ rend = GetComponent <Renderer>(); noiseTex = new Texture2D((int)width, (int)height); pix = new Color[noiseTex.width * noiseTex.height]; rend.material.mainTexture = noiseTex; float y = 0.0F; while (y < noiseTex.height) { float x = 0.0F; while (x < noiseTex.width) { pix[(int)(y * noiseTex.width + x)] = new Color(0f, 0f, 0f); x++; } y++; } noiseTex.SetPixels(pix); noiseTex.Apply(); data = new BirdActivationData(pixWidth, pixHeight, xOrg, yOrg, xScale, yScale, map); //birds = new GameObject[numberOfBirds]; birds = new List <GameObject>(); /*for (int i = 0; i < numberOfBirds; i++, idCounter++) { * GameObject birdO = (GameObject)Instantiate(birdPrefab); * birdO = (GameObject)Instantiate(birdPrefab); * birdO.transform.eulerAngles = new Vector3(0, 0, Random.Range(0f, 360f)); * birdO.transform.position = new Vector3(Random.Range(1f, width - 1f), Random.Range(1f, height - 1f), 0f); * birdO.SendMessage("SetID", idCounter); * birdO.SendMessage(ACTIVATE_WITH_BIRD_DATA, data); * birds.Add(birdO);*/ /*birds[i] = (GameObject) Instantiate(birdPrefab); * birds[i].transform.eulerAngles = new Vector3(0,0, Random.Range(0f,360f)); * birds[i].transform.position= new Vector3(Random.Range(1f, width-1f), Random.Range(1f,height-1f), 0f); * birds[i].SendMessage("SetID", idCounter); * birds[i].SendMessage(ACTIVATE_WITH_BIRD_DATA, data);*/ /*if (i > birds.Count * 0.9f) { * birds[i].SendMessage("SetIsPredetor",true);*/ //birds[i].GetComponent<Renderer>().enabled = false; //} /*for (int i = 0; i < 4; i++) * { * for (int j = 0; j < 4; j++, ids++) * { * walls[i,j] = (GameObject)Instantiate(birdPrefab); * walls[i, j].transform.eulerAngles = new Vector3(0, 0, 0f); * walls[i, j].transform.position = new Vector3(5+j, 5 + i, 0f); * walls[i, j].SendMessage("SetID", ids); * walls[i, j].SendMessage("SetColliderMap", map); * walls[i, j].SendMessage("SetInitialPositionOnMap"); * } * }*/ wallBorderList = new List <GameObject>(); wallList = new List <Bird>(); for (int i = 0; i < height; i++, idCounter++) { GameObject wallBorder = (GameObject)Instantiate(birdPrefab); wallBorder.transform.eulerAngles = new Vector3(0, 0, 0f); wallBorder.transform.position = new Vector3(0.5f, 0.5f + i, 0f); wallBorder.SendMessage("SetID", idCounter); wallBorder.SendMessage("SetColliderMap", map); wallBorder.SendMessage("SetInitialPositionOnMap"); wallBorder.SendMessage("SetIsBorder", true); wallBorder.transform.GetChild(0).GetComponent <MeshRenderer>().enabled = false; wallBorderList.Add(wallBorder); } for (int i = 0; i < height; i++, idCounter++) { GameObject wallBorder = (GameObject)Instantiate(birdPrefab); wallBorder.transform.eulerAngles = new Vector3(0, 0, 0f); wallBorder.transform.position = new Vector3(width - 0.5f, 0.5f + i, 0f); wallBorder.SendMessage("SetID", idCounter); wallBorder.SendMessage("SetColliderMap", map); wallBorder.SendMessage("SetInitialPositionOnMap"); wallBorder.SendMessage("SetIsBorder", true); wallBorder.transform.GetChild(0).GetComponent <MeshRenderer>().enabled = false; wallBorderList.Add(wallBorder); } for (int i = 1; i < width - 1; i++, idCounter++) { GameObject wallBorder = (GameObject)Instantiate(birdPrefab); wallBorder.transform.eulerAngles = new Vector3(0, 0, 0f); wallBorder.transform.position = new Vector3(0.5f + i, 0.5f, 0f); wallBorder.SendMessage("SetID", idCounter); wallBorder.SendMessage("SetColliderMap", map); wallBorder.SendMessage("SetInitialPositionOnMap"); wallBorder.SendMessage("SetIsBorder", true); wallBorder.transform.GetChild(0).GetComponent <MeshRenderer>().enabled = false; wallBorderList.Add(wallBorder); } for (int i = 1; i < width - 1; i++, idCounter++) { GameObject wallBorder = (GameObject)Instantiate(birdPrefab); wallBorder.transform.eulerAngles = new Vector3(0, 0, 0f); wallBorder.transform.position = new Vector3(0.5f + i, height - 0.5f, 0f); wallBorder.SendMessage("SetID", idCounter); wallBorder.SendMessage("SetColliderMap", map); wallBorder.SendMessage("SetInitialPositionOnMap"); wallBorder.SendMessage("SetIsBorder", true); wallBorder.transform.GetChild(0).GetComponent <MeshRenderer>().enabled = false; wallBorderList.Add(wallBorder); } /*for (int i = 0; i < width; i++) * { * GameObject bird1 = (GameObject)Instantiate(birdPrefab); * bird1.transform.eulerAngles = new Vector3(0, 0, Random.Range(0f, 360f)); * Vector3 bird1Pos = new Vector3(i + 0.5f, 0.5f, 0f); * bird1.transform.position = bird1Pos; * bird1.SendMessage("SetID", birds.Length+i); * * GameObject bird2 = (GameObject)Instantiate(birdPrefab); * bird2.transform.eulerAngles = new Vector3(0, 0, Random.Range(0f, 360f)); * Vector3 bird2Pos = new Vector3(i + 0.5f, height - 0.5f, 0f); * bird2.transform.position = bird2Pos; * bird2.SendMessage("SetID", birds.Length + i+width); * map.AddBirdToTile((int)bird1Pos.x, (int)bird1Pos.y,bird1.GetComponent<Bird>()); * map.AddBirdToTile((int)bird2Pos.x, (int)bird2Pos.y,bird2.GetComponent<Bird>()); * }*/ //CalcNoise(); }
public void SetColliderMap(ColliderMap map) { this.map = map; }