Beispiel #1
0
    public void generateEdgesOfMap(GameObject tempObject, GameChunk tempChunk, SpriteRenderer spriteRender, string filePath, string[] typeOfDungeonTexture, string[] specificTextureType)
    {
        //Debug.Log("Dlugość chunkow past: " + producedChunks.Count);
        int i;

        for (i = 0; i < 2; i++)
        {
            //Generating temporary Object
            tempObject = Instantiate(factoryObject);
            tempChunk  = new GameChunk(tempObject, -1);
            tempObject.SetActive(false);
            producedChunks.Add(tempChunk);

            spriteRender        = producedChunks[(int)(objectsToGenerate + i)].getProducedObject().AddComponent <SpriteRenderer>();
            spriteRender.sprite = Resources.Load <Sprite>(filePath + typeOfDungeonTexture[0] + specificTextureType[2]);

            //Entrance and exit generation
            if (i == 0)
            {
                producedChunks[objectsToGenerate + i].getProducedObject().transform.Translate(Vector2.left * leftBoundPossition);
                producedChunks[objectsToGenerate + i].getProducedObject().name = "DungeonChunkEntrance";
            }
            else
            {
                //Exit texture must be flipped
                spriteRender.flipX = true;
                producedChunks[objectsToGenerate + i].getProducedObject().transform.Translate(Vector2.right * rightBoundPossitionForGenerator);
                producedChunks[objectsToGenerate + i].getProducedObject().name = "DungeonChunkExit";
            }
            //Adjusting their size
            producedChunks[objectsToGenerate + i].getProducedObject().transform.localScale = new Vector3((float)0.975, (float)1.12, 1);
            producedChunks[objectsToGenerate + i].getProducedObject().SetActive(true);
        }
    }
Beispiel #2
0
    public void generateMap(int pickedOneInt, int i, bool wasAlreadyGenerated)
    {
        GameObject     tempObject;
        GameChunk      tempChunk;
        SpriteRenderer spriteRender;
        string         filePath = "IceTextures/";

        string[] typeOfDungeonTexture = { "ice." };
        string[] specificTextureType  = { "corridor_wall.", "corridor_door.basic", "endhall.01" };

        tempObject = Instantiate(factoryObject);
        tempChunk  = new GameChunk(tempObject, pickedOneInt);
        tempObject.SetActive(false);
        producedChunks.Add(tempChunk);

        //Adding SpriteRenderer to component (later we can change it to add it into cloned object)
        spriteRender = producedChunks[i].getProducedObject().AddComponent <SpriteRenderer>();//jest jeszcze GetComponent

        //Every first and last chunk will be generated as entrance and exit
        if (i == 0 || i == objectsToGenerate - 1)
        {
            //Generating entrance and exit from the corridor
            spriteRender.sprite = Resources.Load <Sprite>(filePath + typeOfDungeonTexture[0] + specificTextureType[1]);
            if (i == objectsToGenerate - 1)
            {
                spriteRender.flipX = true;
            }
        }
        else
        {
            if (wasAlreadyGenerated == false)
            {
                //This checks if it generated 2 identical textures in a row
                if (producedChunks[i - 1].getRandomizedNumber() == producedChunks[i].getRandomizedNumber())
                {
                    //And tries to reroll it until it gets different one
                    while (producedChunks[i - 1].getRandomizedNumber() == producedChunks[i].getRandomizedNumber())
                    {
                        //Applies new value
                        producedChunks[i].setRandomizedNumber(randomNumber.Next(1, 7));
                    }
                }
                spriteRender.sprite = Resources.Load <Sprite>(filePath + typeOfDungeonTexture[0] + specificTextureType[0] + producedChunks[i].getRandomizedNumber().ToString());//I might need to remove toString
            }
            else
            {
                spriteRender.sprite = Resources.Load <Sprite>(filePath + typeOfDungeonTexture[0] + specificTextureType[0] + pickedOneInt);
            }
        }

        //Setting possition, naming new object and making it active in inspector
        producedChunks[i].getProducedObject().transform.Translate(Vector2.right * chunkWidth * i);
        producedChunks[i].getProducedObject().name = "DungeonChunk_" + i.ToString();
        producedChunks[i].getProducedObject().transform.localScale = new Vector3((float)0.975, (float)1.12, 1);
        producedChunks[i].getProducedObject().SetActive(true);

        //After generating last chunk we are generating border chunks
        if (i == objectsToGenerate - 1)
        {
            generateEdgesOfMap(tempObject, tempChunk, spriteRender, filePath, typeOfDungeonTexture, specificTextureType);
        }
    }