예제 #1
0
    private void Move(Vector3 newPos)
    {
        var previousPosition = this.transform.position;

        if (newPos.x > maxX)
        {
            newPos = new Vector3(minX, newPos.y, newPos.z);
        }
        else if (newPos.x < minX)
        {
            newPos = new Vector3(maxX, newPos.y, newPos.z);
        }
        else if (newPos.z > maxZ)
        {
            newPos = new Vector3(newPos.x, newPos.y, minZ);
        }
        else if (newPos.z < minZ)
        {
            newPos = new Vector3(newPos.x, newPos.y, maxZ);
        }

        this.transform.position = newPos;

        if (_next != null)
        {
            _next.Move(previousPosition);
        }
        else if (shouldSpawn)
        {
            shouldSpawn = false;
            //Soy el ultimo nodo y me toca spawnear otro nodo en la posición que acabo de abandonar
            this._next = Instantiate(snakeNodePrefab, previousPosition, Quaternion.identity).GetComponent <SnakeNode>();
        }
    }
예제 #2
0
    private void Move(Vector3 newPosition)
    {
        Vector3 prevPosition = this.transform.position;

        this.transform.position = newPosition;

        if (this.nextNode != null)
        {
            nextNode.Move(prevPosition);
        }
        else if (shouldSpawn)
        {
            shouldSpawn = false;
            nextNode    = Instantiate(snakePrefab, prevPosition, Quaternion.identity).GetComponent <SnakeNode>();
        }
    }
예제 #3
0
    private void MoveSnake()
    {
        for (int i = 0; i < _snake.Count; i++)
        {
            SnakeNode node = _snake[i];
            node.Move();
        }
        List <int> tempIndexs = new List <int>();

        for (int i = 0; i < _indexs.Count; i++)
        {
            int index = _indexs[i];
            if (index > 0 && index < _snake.Count)
            {
                _snake[index].moveDir = _snake[index - 1].moveDir;
                _indexs[i]++;
            }
            if (_indexs[i] < _snake.Count)
            {
                tempIndexs.Add(_indexs[i]);
            }
        }
        _indexs = tempIndexs;
    }