Exemplo n.º 1
0
    public ArrayList getRadnomRooms(int count, int sizeMin, int sizeMax)
    {
        ArrayList array = new ArrayList();

        int minx = UndestructableTile.getMinx();
        int miny = UndestructableTile.getMiny();
        int maxx = UndestructableTile.getMaxx();
        int maxy = UndestructableTile.getMaxy();

        for (int i = 0; i < count; i++)
        {
            System.Random rnd     = new System.Random();
            int           randomx = rnd.Next(minx, maxx);
            array.Add(randomx);
            System.Random rnd2    = new System.Random();
            int           randomy = rnd2.Next(miny, maxy);
            array.Add(randomy);

            System.Random rnd3  = new System.Random();
            int           sizex = rnd3.Next(sizeMin, sizeMax);
            array.Add(sizex);

            System.Random rnd4  = new System.Random();
            int           sizey = rnd4.Next(sizeMin, sizeMax);
            array.Add(sizey);
        }

        return(array);
    }
Exemplo n.º 2
0
    // Update is called once per frame
    void Update()
    {
        Vector3 initialCamPos = this.gameObject.transform.position;

        this.MovementVector = new Vector2(0, 0);
        if (TriggerState.BottomTriggered)
        {
            MovementVector.y = -1 * this.CameraSpeed;
        }
        if (TriggerState.TopTriggered && this.transform.position.y < 1)
        {
            MovementVector.y = 1 * this.CameraSpeed;
        }
        if (TriggerState.LeftTriggered)
        {
            MovementVector.x = -1 * this.CameraSpeed;
        }
        if (TriggerState.RightTriggered)
        {
            MovementVector.x = 1 * this.CameraSpeed;
        }
        this.gameObject.transform.position += (new Vector3(MovementVector.x, MovementVector.y, 0) * Time.deltaTime);
        Vector3 finalCamPos = this.gameObject.transform.position;

        float leftCameraEdge   = mCam.ScreenToWorldPoint(new Vector3(0, 0, 4)).x;
        float rightCameraEdge  = mCam.ScreenToWorldPoint(new Vector3(mCam.pixelWidth, 0, 4)).x;
        float topCameraEdge    = mCam.ScreenToWorldPoint(new Vector3(0, mCam.pixelHeight, 4)).y;
        float bottomCameraEdge = mCam.ScreenToWorldPoint(new Vector3(0, 0, 4)).y;

        Vector3 centerPos = mCam.ScreenToWorldPoint(new Vector3(mCam.pixelWidth / 2, mCam.pixelHeight / 2, 4));

        if ((rightCameraEdge + rightPadding) > UndestructableTile.getMaxx())
        {
            finalCamPos.x = centerPos.x - Mathf.Abs((rightCameraEdge + rightPadding) - UndestructableTile.getMaxx());
        }
        if ((leftCameraEdge - leftPadding) < UndestructableTile.getMinx())
        {
            finalCamPos.x = centerPos.x + Mathf.Abs((leftCameraEdge - leftPadding) - UndestructableTile.getMinx());
        }

        if (-(topCameraEdge + topPadding) < UndestructableTile.getMiny())
        {
            finalCamPos.y = centerPos.y - Mathf.Abs((topCameraEdge + topPadding) - UndestructableTile.getMiny());
        }

        if (-(bottomCameraEdge - bottomPadding) > UndestructableTile.getMaxy())
        {
            finalCamPos.y = centerPos.y + Mathf.Abs((bottomCameraEdge - bottomPadding) + UndestructableTile.getMaxy());
        }
        this.gameObject.transform.position = finalCamPos;
    }
    // Use this for initialization
    void Start()
    {
        ProceduralNoise generator = gameObject.GetComponent <ProceduralNoise>();
        int             minX      = UndestructableTile.getMinx() - PaddingLeft;
        int             maxX      = UndestructableTile.getMaxx() + PaddingRight;
        int             minY      = UndestructableTile.getMiny() - PaddingTop;
        int             maxY      = UndestructableTile.getMaxy() + PaddingBottom;

        int sizeX = Mathf.Abs(minX) + Mathf.Abs(maxX) + 1;
        int sizeY = Mathf.Abs(minY) + Mathf.Abs(maxY) + 1;

        int[,] noise = generator.GenerateNoise(sizeX, sizeY, 0f, 0f, 0.001f, 0.8f);
        for (int i = minX; i < maxX; i++)
        {
            for (int j = minY; j < maxY; j++)
            {
                GameObject Instantiated = Instantiate(WorldTile);
                if (noise[i + Mathf.Abs(minX), j + Mathf.Abs(minY)] == 1)
                {
                    Renderer rendererInstantiated = Instantiated.GetComponent <Renderer>();
                    rendererInstantiated.material = goldMaterial;
                }

                Tile inTile = Instantiated.GetComponent <WorldTile>();
                if (inTile != null)
                {
                    inTile.InitiateTile(CoordinatePair.Init(i, j));
                    StaticWorldObjects.WorldTiles.Add(CoordinatePair.Init(i, j), (WorldTile)inTile);
                }
                Instantiated = Instantiate(StructureTile);
                inTile       = Instantiated.GetComponent <StructureTile>();
                if (inTile != null)
                {
                    inTile.InitiateTile(CoordinatePair.Init(i, j));
                    StaticWorldObjects.WorldStructureTiles.Add(CoordinatePair.Init(i, j), (StructureTile)inTile);
                }
                Instantiated = Instantiate(BackGroundTile);
                inTile       = Instantiated.GetComponent <WorldBackgroundTile>();
                if (inTile != null)
                {
                    inTile.InitiateTile(CoordinatePair.Init(i, j));
                    StaticWorldObjects.WorldBackgroundTiles.Add(CoordinatePair.Init(i, j), (WorldBackgroundTile)inTile);
                }
            }
        }

        this.enabled = false;
    }