Esempio n. 1
0
    public void CreateNextTile()
    {
        // Create new snake Tile
        SnakeTile newSnakeTile = Instantiate(snakePrefab).GetComponent <SnakeTile>();

        // Set parent to Snake holder
        newSnakeTile.transform.SetParent(transform);
        // Change scale to 1
        newSnakeTile.transform.localScale = new Vector3(1, 1, 1);
        // Set RT world position relative to last snake tile - head
        if (head != null)
        {
            Vector2Int index = GetPositionToCreateTile();
            BoardTile  bt    = Board.instance.GetBoardTile(index);
            newSnakeTile.SetPositionToBoard(bt);
            head.DisableRigidbody();
        }
        else
        {
            newSnakeTile.SetPositionToBoard(Board.instance.GetFirstTilePosition());
        }

        SnakeTile snakeTile = newSnakeTile.GetComponent <SnakeTile>();

        head = snakeTile;
        tilesList.Add(snakeTile);
        currentSnakeLength++;
    }
Esempio n. 2
0
    void AddPiece()
    {
        SnakeTile snakeTile = Instantiate(snakeTilePrefab, transform.position, Quaternion.identity);

        snakeTile.transform.parent = transform;
        snakeTile.MoveToTile(snakePieces[snakePieces.Count - 1]);

        switch (PlayerInput.Dir)
        {
        case PlayerInput.Direction.Up:
            snakeTile.MoveDown();
            break;

        case PlayerInput.Direction.Down:
            snakeTile.MoveUp();
            break;

        case PlayerInput.Direction.Left:
            snakeTile.MoveRight();
            break;

        case PlayerInput.Direction.Right:
            snakeTile.MoveLeft();
            break;

        default: break;
        }
        snakePieces.Add(snakeTile);
    }
Esempio n. 3
0
    void RemoveTail()
    {
        SnakeTile st = tilesList.First();

        tilesList.Remove(st);
        st.RemoveTail();
        currentSnakeLength--;
    }
Esempio n. 4
0
    //Teleports the player to a tile further back if they land on a snake tile (numSpacesBack determined by snakeTile script)
    void MovePlayerBack()
    {
        snake = waypoints[currentWaypointID].GetComponent <SnakeTile>();
        //Set the new start point for next turn
        currentWaypointID  = currentWaypointID - snake.numSpacesBack;
        startingWaypointID = currentWaypointID;
        endWaypointID      = currentWaypointID;

        navMeshAgent1.transform.position = waypoints[currentWaypointID].transform.position;

        print("new player 1 starting point: " + startingWaypointID);
        print("player 1 current point: " + currentWaypointID);
        print("endWaypointID: " + endWaypointID);
    }
Esempio n. 5
0
    private void CheckIfSnakeOnApple()
    {
        SnakeTile tileAtHead = _snake.GetHead();
        var       gridTile   = GridManager.Instance.GetTileAt(tileAtHead.GridPos.x, tileAtHead.GridPos.y);

        if (gridTile == null)
        {
            return;
        }

        if (gridTile.HasApple)
        {
            SnakeOnApple(gridTile);
            SpawnApple();
        }
    }
Esempio n. 6
0
 public void Restart()
 {
     isAlive = true;
     head    = null;
     tilesList.Clear();
 }