public override void Simulate()
    {
        _asteroidSpawnRate.Simulate();

        if (_asteroidSpawnRate.ShouldExecute())
        {
            CreateAsteroid();
            _asteroidSpawnRate.Reset();
        }
    }
        // Start is called before the first frame update
        void Start()
        {
            if (registerPlayer)
            {
                _playerId = RollbackManager.rbInputManager.AddPlayer();
            }

            _playerMovement = GetComponent <PlayerMovement>();
            InScreenManager._instance.RegisterObject(transform);

            _rollbackTimerBetweenShoots = new RollbackTimer(_timeBetweenShootsTick);
            _rollbackTimerBetweenShoots.Reset();
        }
        public override void Simulate()
        {
            if (_playerId == -1)
            {
                return;
            }

            Vector2 newDirection;

            newDirection.x = RollbackManager.rbInputManager.GetAxis(RollbackInputManager.AxisEnum.HORIZONTAL, _playerId);
            newDirection.y = RollbackManager.rbInputManager.GetAxis(RollbackInputManager.AxisEnum.VERTICAL, _playerId);
            _playerMovement.SetDirection(newDirection);

            _rollbackTimerBetweenShoots.Simulate();
            if (_rollbackTimerBetweenShoots.ShouldExecute())
            {
                if (RollbackManager.rbInputManager.GetInputDown((int)CustomInputManager.ActionsCode.SHOOT, _playerId))
                {
                    ProjectileManager.Instance.poolManager.CreateObject(_shootPosition.position, _playerMovement.spriteTransform.rotation, _projectileSpeed);
                    _rollbackTimerBetweenShoots.Reset();
                }
            }
        }
Exemple #4
0
 public void SetGameObjectActive()
 {
     gameObject.SetActive(true);
     _rollbackTimer.Reset();
 }
 void Start()
 {
     _asteroidPoolManager = GetComponent <PoolManager>();
     _asteroidSpawnRate   = new RollbackTimer(_timeBetweenAsteroidSpawn);
     _asteroidSpawnRate.Reset();
 }