Exemplo n.º 1
0
    public void SpawnItems(int amount)
    {
        for (int i = 0; i < amount; i++)
        {
            DroppedItemScript droppedItemScript = Instantiate(itemPrefab, Vector2.zero, Quaternion.identity).GetComponent <DroppedItemScript>();

            droppedItemScript.type = (ItemType)Random.Range(0, (int)ItemType.Total);
            droppedItemScript.UpdateSprite();

            int newXPos = 0;
            int newYPos = 0;

            bool canSpawn = false;

            // ! Make sure pos doesn't have enemy / player
            for (int j = 0; j < 100; j++)
            {
                newXPos = Random.Range(0, (int)TileEngineScript.Instance.size.x);
                newYPos = Random.Range(0, (int)TileEngineScript.Instance.size.y);

                if (!IsPlayerPresent(newXPos, newYPos) && !IsItemPresent(newXPos, newYPos))
                {
                    canSpawn = true;
                    break;
                }
            }

            if (!canSpawn)
            {
                continue;
            }

            // ! Set enemy pos
            droppedItemScript.xPos = newXPos;
            droppedItemScript.yPos = newYPos;
            droppedItemScript.transform.position = TileEngineScript.Instance.posMap[droppedItemScript.yPos, droppedItemScript.xPos];

            // ! Save enemy in list
            itemList.Add(droppedItemScript);
        }
    }
Exemplo n.º 2
0
    void SpawnItem()
    {
        for (int i = 0; i < spawnPosRange.Length; i++)
        {
            for (int j = 0; j < TileManagerScript.instance.tileList.Count; j++)
            {
                if (TileManagerScript.instance.tileList[j].transform.position.x >= spawnPosRange[i].minX &&
                    TileManagerScript.instance.tileList[j].transform.position.x <= spawnPosRange[i].maxX)
                {
                    if (TileManagerScript.instance.tileList[j].transform.position.y >= spawnPosRange[i].minY &&
                        TileManagerScript.instance.tileList[j].transform.position.y <= spawnPosRange[i].maxY)
                    {
                        if (TileManagerScript.instance.tileList[j].isAlive && !TileManagerScript.instance.tileList[j].hasItem)
                        {
                            Vector2 myPos = TileManagerScript.instance.tileList[j].transform.position;

                            myPos.y += 1f;

                            GameObject newItem = Instantiate(itemPrefab, myPos, Quaternion.identity) as GameObject;

                            DroppedItemScript itemscript = newItem.GetComponent <DroppedItemScript>();

                            itemscript.rend = itemscript.GetComponent <SpriteRenderer>();

                            itemscript.type               = (ItemType)Random.Range(0, (int)ItemType.Total);
                            itemscript.parentTile         = TileManagerScript.instance.tileList[j];
                            itemscript.rend.sprite        = itemSprites[(int)itemscript.type];
                            itemscript.parentTile.hasItem = true;

                            return;
                        }
                    }
                }
            }
        }
    }