示例#1
0
    protected override void CheckIfInTile()
    {
        base.CheckIfInTile();

        if (_currentDropZone != null)
        {
            _tileText.enabled = false;
            return;
        }

        if (_isInTile)
        {
            _tileText.text    = GridCoords.GetTileName(_currentTile);
            _tileText.enabled = true;
        }
        else
        {
            _tileText.enabled = false;
        }
    }
示例#2
0
    /* FONCTION DE GÉNÉRATION DE TUILES
     * - Génère une grille de tuiles physiques dans le world
     * - Assigne les dimensions d'une tuile pour que la grille reste confinée en tout temps dans l'espace de jeu
     * - La largeur (mapWidth) détermine la grosseur des tuiles, en fonction du nombre de tuiles en X
     */
    private void GenerateMapTiles()
    {
        float actualWidth = mapWidth;

        // Assigner le size de la grille par rapport à la grosseur de la world map, si elle est trouvable
        if (_worldMap != null)
        {
            actualWidth = _worldMap.GetComponent <SpriteRenderer>().size.x;
        }

        float tileWidth = 0.03125f * 19f;

        actualWidth = (tileWidth * mapSizeX);

        //float tileWidth = actualWidth / mapSizeX;   // Dimensions d'une tuile en unités de unity
        Vector3 spawnOffset = new Vector3(actualWidth / 2f, (tileWidth * mapSizeY) / -2f, 0f);

        spawnOffset.x -= 0.03125f;
        spawnOffset.y += 0.03125f;

        char startChar = 'A';

        startChar--;

        for (int x = 0; x < mapSizeX; x++)
        {
            for (int y = 0; y < mapSizeY; y++)
            {
                // Instanciation des tuiles, à partir du array 2D de ints (voir fonction suivante)
                GameObject tilePrefab = GetTileFromID(_gameGrid[x, y]);
                Vector3    spawnPos   = new Vector3(x * tileWidth, -y * tileWidth, 0f);
                spawnPos -= spawnOffset;

                // Assignation des tuiles et initialisation
                GameObject go = Instantiate(tilePrefab, spawnPos, Quaternion.identity);

                // TEMP Instantiation sous le DebugManager
                if (DebugManager.instance != null)
                {
                    go.transform.SetParent(DebugManager.instance.gridDebug.transform);
                }

                // Assignation des paramètres sur les OBJETS de tuile
                GridTile gt = go.GetComponent <GridTile>();
                gt.tileX    = x;
                gt.tileY    = y;
                gt.tileType = _gameGrid[x, y];
                //gt.InitializeTile(new Vector2(tileWidth, tileWidth), _currentGridMode);
                gt.tileName = GridCoords.GetTileName(new TileCoordinates(x, y));

                // Ajout de la tuile à l'array2D de tuiles
                _gameGridTiles[x, y] = gt;
            }
        }

        // Assignation des informations de la grille et appel de l'ACTION de nouvelle grille
        Bounds newBounds = new Bounds(Vector3.zero, new Vector3(actualWidth, tileWidth * mapSizeY, 0f));

        _currentGridInfo = new GridInfo(_gameGridTiles, new Vector2Int(mapSizeX, mapSizeY), newBounds, tileWidth, evenSprite, oddSprite);

        foreach (var tile in _gameGridTiles)
        {
            tile.InitializeTile(new Vector2(tileWidth, tileWidth), _currentGridMode, _currentGridInfo);
            //bool addHeat = false;

            //if (tile.tileX == 0)
            //    addHeat = true;
            //else if (tile.tileY == 0)
            //    addHeat = true;
            //else if (tile.tileX == mapSizeX - 1)
            //    addHeat = true;
            //else if (tile.tileY == mapSizeY - 1)
            //    addHeat = true;

            //if (addHeat)
            //    tile.AddPlanetHeat(1);
        }
    }