コード例 #1
0
 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;
 }
コード例 #2
0
    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;
    }
コード例 #3
0
    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();
    }
コード例 #4
0
 public void SetColliderMap(ColliderMap map)
 {
     this.map = map;
 }