예제 #1
0
 void MakeInstance()
 {
     if (instance == null)
     {
         instance = this;
     }
 }
예제 #2
0
    public void Load(string levelName)
    {
        foreach (var grid in _gridIndicators)
        {
            grid.Enabled   = false;
            grid.HasPlayer = false;
        }

        var levelProperties = LevelFileReader.ConvertFileToLevelProperties(levelName);
        var gridWidth       = levelProperties.GridWidth;
        var gridHeight      = levelProperties.GridHeight;

        var playerPos  = new Vector2Int(levelProperties.PlayerPosX, levelProperties.PlayerPosY);
        var playerGrid = GetGridByPosition(playerPos);

        playerGrid.HasPlayer = true;
        playerGrid.Color     = levelProperties.PlayerColor;

        _lastPlayerLocation = playerPos;

        for (var x = 0; x < gridWidth; ++x)
        {
            for (var y = 0; y < gridHeight; ++y)
            {
                var enabled = levelProperties.GetCellEnabled(x, y);

                if (!enabled)
                {
                    continue;
                }

                if (GetGridByPosition(new Vector2Int(x, y)).HasPlayer)
                {
                    continue;
                }

                var current = GetGridByPosition(new Vector2Int(x, y));

                current.Enabled = enabled;

                current.Color = levelProperties.GetItemColor(x, y);

                current.ItemType = levelProperties.GetItemType(x, y);
            }
        }
    }
예제 #3
0
    private void InitializeLevel()
    {
        var levelProperties = LevelFileReader.ConvertFileToLevelProperties(PlayerPrefs.GetString(Strings.NextLevel_PlayerPref_String, "denemeLevel"));

        _gridWidth  = levelProperties.GridWidth;
        _gridHeight = levelProperties.GridHeight;

        _grid = new Grid(_gridWidth, _gridHeight, _player);
        transform.position = (new Vector2(_gridWidth, _gridHeight) * -0.5f);

        for (var x = 0; x < _gridWidth; ++x)
        {
            for (var y = 0; y < _gridHeight; ++y)
            {
                _grid[x, y]         = CreateCell();
                _grid[x, y].Enabled = levelProperties.GetCellEnabled(x, y);

                if (!_grid[x, y].Enabled)
                {
                    continue;
                }

                var currentItemType = levelProperties.GetItemType(x, y);

                if (currentItemType == ItemType.None)
                {
                    continue;
                }

                _grid[x, y].Item = GetItem(currentItemType, levelProperties.GetItemColor(x, y), _grid[x, y]);
            }
        }

        _player.LocalPosition = new Vector2(levelProperties.PlayerPosX, levelProperties.PlayerPosY);
        _player.SetColor(levelProperties.PlayerColor);
    }