Exemple #1
0
 private void CheckBorders()
 {
     if (!GameAreaHelper.IsInGameplayArea(transform, _representation.bounds, Camera.main))
     {
         Destroy(gameObject);
     }
 }
Exemple #2
0
        protected override void ProcessHandling(MovementSystem movementSystem)
        {
            Vector3 transformPosition = transform.position;
            float   positionX         = 0;

            if (_rightBound > transformPosition.x && !_rightScreenBoundFlag)
            {
                positionX = Time.deltaTime * -1;
                float bound = _rightBound - 2;

                if (bound < transformPosition.x)
                {
                    _rightScreenBoundFlag = true;
                }
            }
            else if (_leftBound < transformPosition.x && _rightScreenBoundFlag)
            {
                positionX = Time.deltaTime;
                float bound = _leftBound + 2;

                if (bound > transformPosition.x)
                {
                    _rightScreenBoundFlag = false;
                }
            }

            if (GameAreaHelper.RestrictLateralMovement(ref transformPosition, positionX, _bounds, _camera))
            {
                movementSystem.LateralMovement(positionX);
            }
            else
            {
                transform.position = transformPosition;
            }
        }
        protected override void ProcessHandling(MovementSystem movementSystem)
        {
            Vector3 transformPosition = transform.position;
            float   positionX         = 0;

            if (_playerPositionX < transformPosition.x)
            {
                positionX = Time.deltaTime;
            }
            else
            {
                positionX = Time.deltaTime * -1;
            }

            if (GameAreaHelper.RestrictLateralMovement(ref transformPosition, positionX, _representation.bounds, Camera.main))
            {
                movementSystem.LateralMovement(positionX);
            }
            else
            {
                transform.position = transformPosition;
            }

            if (!_find)
            {
                return;
            }

            StartCoroutine(FindPlayerPosition());
        }
Exemple #4
0
 private void CheckBorders()
 {
     if (!GameAreaHelper.IsInGameplayArea(transform, _representation.bounds, Camera.main))
     {
         transform.position = startPoint.transform.position;
     }
 }
        protected override void ProcessHandling(MovementSystem movementSystem)
        {
            var direction = Input.GetAxis("Horizontal");

            if (GameAreaHelper.IsPlayerAllowedToMove(transform, _sprite.bounds, direction)) // проверка на возможность двигаться по оси X
            {
                movementSystem.LateralMovement(direction * Time.deltaTime);
            }
        }
        //Кастомное движение объекта
        protected override void ProcessHandling(MovementSystem movementSystem)
        {
            if (!GameAreaHelper.IsAllObjectInGameplayArea(gameObject.transform, _collider2D.bounds))
            {
                _isShipTouchedBorder = !_isShipTouchedBorder;
            }

            movementSystem.LongitudinalMovement(Time.deltaTime);
            movementSystem.LateralMovement(Time.deltaTime, _isShipTouchedBorder);
        }
        //вызываем каждый раз в Update, если нажаты Left/Right arrow или A/D - двигаем корабль
        //если корабль достигает края экрана, то движение за экран не производим
        protected override void ProcessHandling(MovementSystem movementSystem)
        {
            float movement = Input.GetAxis("Horizontal");

            if (GameAreaHelper
                .IsAvailableForLateralMovement(this.transform, _representation.bounds, movement))
            {
                movementSystem.LateralMovement(movement * Time.deltaTime);
            }
        }
        private SpriteRenderer _representation; //reference to the moving object sprite

        protected override void Move(float amount, Vector3 axis)
        {
            // Only move if new position is in gemeply area (including bounds)
            var newPosition = transform.position + transform.TransformVector(amount * axis.normalized);

            if (!GameAreaHelper.IsInGameplayArea(newPosition, _representation.bounds, true))
            {
                return;
            }
            transform.position = newPosition;
        }
Exemple #9
0
        //обработка горизонтального движения
        protected override void ProcessHandling(MovementSystem movementSystem)
        {
            Vector3 oldPosition = gameObject.transform.position;

            movementSystem.LateralMovement(Input.GetAxis("Horizontal") * Time.deltaTime * _playerSpaceship.CurrentSpeed);

            if (!GameAreaHelper.IsAllObjectInGameplayArea(transform, _objectCollider.bounds))
            {
                gameObject.transform.position = oldPosition;
            }
        }
    protected override void ProcessCheckBorders(UnitBattleIdentity identity)
    {
        if (identity != UnitBattleIdentity.Enemy)
        {
            return;
        }

        if (GameAreaHelper.CheckPlayArea(transform, _hull.bounds))
        {
            _spaceShip.HealthSystem.Die();
        }
    }
Exemple #11
0
        private IEnumerator Spawn()
        {
            yield return(new WaitForSeconds(Random.Range(_spawnDelayRange.x, _spawnDelayRange.y)));

            while (true)
            {
                GameObject spawnedObject = _objectList[Random.Range(0, _objectList.Count)];
                float      randomMove    = 0f;
                if (_randomPosition)
                {
                    randomMove = Random.Range(GameAreaHelper.GetHorizontalCameraBounds().x, GameAreaHelper.GetHorizontalCameraBounds().y);
                }
                Instantiate(spawnedObject, transform.position + new Vector3(randomMove, 0f, 0f), transform.rotation, _parent);
                yield return(new WaitForSeconds(Random.Range(_spawnPeriodRange.x, _spawnPeriodRange.y)));
            }
        }
        protected override void ProcessCheckBorders(UnitBattleIdentity identity)
        {
            if (identity != UnitBattleIdentity.Player)
            {
                return;
            }

            if (GameAreaHelper.CheckBorders(transform) < 0)
            {
                transform.position = new Vector2(GameAreaHelper.LeftBound, transform.position.y);
            }
            if (GameAreaHelper.CheckBorders(transform) > 0)
            {
                transform.position = new Vector2(GameAreaHelper.RightBound, transform.position.y);
            }
        }
Exemple #13
0
        protected override void ProcessHandling(MovementSystem movementSystem)
        {
            if (_userControl == null)
            {
                return;
            }

            float   positionX         = _userControl.X * Time.deltaTime;
            Vector3 transformPosition = transform.position;

            if (GameAreaHelper.RestrictLateralMovement(ref transformPosition, positionX, _representation.bounds, Camera.main))
            {
                movementSystem.LateralMovement(positionX);
            }
            else
            {
                transform.position = transformPosition;
            }
        }
        protected override void ProcessHandling(MovementSystem movementSystem)
        {
            var move = new Vector3(inputStrategy.GetHorizontalMove(Camera.main.WorldToScreenPoint(transform.position).x) * Time.deltaTime, 0, 0);

            if (GameAreaHelper.IsInGameplayAreaFull(transform, _representation.bounds))
            {
                lastPosition = transform.position;
                movementSystem.LateralMovement(move.x);
            }
            else
            {
                transform.position = lastPosition;
            }

            if (inputStrategy.IsStrategySwitchedPressed(out InputStrategy newStrategy))
            {
                inputStrategy = newStrategy;
            }
        }
Exemple #15
0
 // Start is called before the first frame update
 void Start()
 {
     GameAreaHelper.NewSceneInit();
 }