예제 #1
0
    private void StartGameServer()
    {
        for (var i = 0; i < Platforms.Length; i++)
        {
            Platforms[i] = Spawner.SpawnPlatformMultiplayer(ref _platformContainer);
        }

        for (var i = 0; i < _walls.Length; i++)
        {
            _walls[i] = Spawner.SpawnWall(ref _wallsContainer);
        }

        CalculateStartPositions();

        _ball = Spawner.SpawnBallMultiplayer(ref _ballContainer);

        _movementController = new MovementController(new Platform[1] {
            Platforms[0]
        }, _camera, _horizontalSize);
        _clientMovementController = new ClientMovementController(new Platform[1] {
            Platforms[1]
        }, _camera, _horizontalSize);

        _gameEndedController = new GameEndedController(_ball, _verticalSize);
        _gameEndedController.BallRealesed += RespawnBall;
    }
예제 #2
0
    private void EndGameServer()
    {
        _movementController?.GameEnded();
        _clientMovementController?.GameEnded();
        _gameEndedController?.GameEnded();

        _movementController       = null;
        _clientMovementController = null;
        _gameEndedController      = null;

        for (var i = 0; i < _walls.Length; i++)
        {
            if (_walls[i] == null)
            {
                continue;
            }

            PoolObjects.Release(_walls[i]);
            _walls[i] = null;
        }
    }