Ejemplo n.º 1
0
    private GameObject CreateKunai(Vector3 startPosition)
    {
        var resultObject = Instantiate(kunaiObject, startPosition, Quaternion.identity);

        resultObject.name                  = StaticVariables.GetKunaiName(_kunaiId);
        resultObject.transform.parent      = transform;
        resultObject.transform.localScale -= new Vector3(_gameScript.gameState.Scale, _gameScript.gameState.Scale, _gameScript.gameState.Scale);
        _kunaiId++;
        return(resultObject);
    }
Ejemplo n.º 2
0
    void Update()
    {
        switch (_state)
        {
        case (State.Idle):
            if (Input.GetMouseButtonDown(0))
            {
                _state = State.Flying;
            }
            break;

        case (State.Flying):
            if (IsIntersects(_logObject.GetComponent <CircleCollider2D>().bounds))
            {
                Stuck(_logObject.transform);
                _levelScript.Stuck();
                var desiredPosition = _logObject.transform.position.y - _gameState.LogHeight / 2 - _gameState.KunaiHeight / 2 + StaticVariables.KunaiMargin;
                transform.Translate(0, desiredPosition - transform.position.y, 0);
            }
            else
            {
                if (_apple != null && IsIntersects(_apple.GetComponent <CircleCollider2D>().bounds))
                {
                    _levelScript.HitApple();
                }
                var missed     = false;
                var kunaiId    = 0;
                var stuckKunai = _logObject.transform.Find(StaticVariables.GetKunaiName(kunaiId));
                while (stuckKunai != null)
                {
                    missed = missed || IsIntersects(stuckKunai.GetComponent <PolygonCollider2D>().bounds);
                    kunaiId++;
                    stuckKunai = _logObject.transform.Find(StaticVariables.GetKunaiName(kunaiId));
                }
                if (missed)
                {
                    _levelScript.Missed();
                }
                else
                {
                    transform.Translate(0, 2 * _gameState.ScreenHeight * Time.deltaTime, 0);
                }
            }
            break;
        }
    }