private void OnDisconnect(object sender, TcpConnection.TcpConnectionArgs e) { Player player = new Player(Account, Number, e.Connection); var args = new PlayerArg { Player = player }; OnDisconnectEvent?.Invoke(this, args); }
//================================== public IEnumerator Start() { Player1 = new PlayerArg(); Player2 = new PlayerArg(); using (WWW www = new WWW(SOUND_BUNDLE_URL)) { yield return(www); BubbleSound = Instantiate(www.assetBundle.mainAsset) as AudioClip; } }
//--------------------------------- public void Init(PlayerInitArg _Player1Arg, PlayerInitArg _Player2Arg, NetManager.PlayerType _currentPlayer) { Player1 = new PlayerArg(); Player2 = new PlayerArg(); currentPlayer = _currentPlayer; Player1.CurrentCirclesCount = _Player1Arg.CurrentCirclesCount; Player1.PlayerType = _Player1Arg.PlayerType; Player1.Scores = _Player1Arg.Scores; Player1.RandomSeed = _Player1Arg.RandomSeed; Player1.FinishHPosition = CircleMoveFinishHPosition; Player1.FinishMove_CallBack = OnFinishMoveCircle; Player1.OnClick_CallBack = OnClickCircle; Player1.Random = new System.Random(Player1.RandomSeed); Player1.CircleSpawnStartPositionLeft = Player1CircleSpawnStartPositionLeft; Player1.CircleSpawnStartPositionRight = Player1CircleSpawnStartPositionRight; Player2.CurrentCirclesCount = _Player2Arg.CurrentCirclesCount; Player2.PlayerType = _Player2Arg.PlayerType; Player2.Scores = _Player2Arg.Scores; Player2.RandomSeed = _Player2Arg.RandomSeed; Player2.FinishHPosition = CircleMoveFinishHPosition; Player2.FinishMove_CallBack = OnFinishMoveCircle; Player2.OnClick_CallBack = OnClickCircle; Player2.Random = new System.Random(Player2.RandomSeed); Player2.CircleSpawnStartPositionLeft = Player2CircleSpawnStartPositionLeft; Player2.CircleSpawnStartPositionRight = Player2CircleSpawnStartPositionRight; int i = 0; if (Player1.CurrentCirclesCount > 0) { i = 0; while (i++ < Player1.CurrentCirclesCount) { Player1.Random.NextDouble(); Player1.Random.NextDouble(); } } if (Player2.CurrentCirclesCount > 0) { i = 0; while (i++ < Player2.CurrentCirclesCount) { Player2.Random.NextDouble(); Player2.Random.NextDouble(); } } isGameStarted = true; StartCoroutine(IE_CircleGeneration()); }
//-------------------------------- private void InstantiateCircle(PlayerArg player) { _circleArg.CircleID.ID = player.CurrentCirclesCount; _circleArg.CircleID.PlayerType = player.PlayerType; _circleArg.FinishMove_CallBack = player.FinishMove_CallBack; _circleArg.OnClick_CallBack = player.OnClick_CallBack; float _diameter = (float)player.Random.NextDouble(); _diameter *= (MaxCircleSize - MinCircleSize); _diameter += MinCircleSize; if (MaxCircleSize / _diameter <= 1f / 4f) { _textSize = ResManager.TextureSize.s32; } else if (MaxCircleSize / _diameter <= 2f / 4f) { _textSize = ResManager.TextureSize.s64; } else if (MaxCircleSize / _diameter <= 3f / 4f) { _textSize = ResManager.TextureSize.s128; } else { _textSize = ResManager.TextureSize.s256; } _circle = ResManager.Instance.GetCircle(_textSize); _circle.transform.localScale = new Vector3(_diameter, _diameter, _diameter); float _pos = (float)player.Random.NextDouble(); _pos *= (player.CircleSpawnStartPositionRight.x - player.CircleSpawnStartPositionLeft.x); _pos += player.CircleSpawnStartPositionLeft.x; _circle.transform.position = new Vector3(_pos, player.CircleSpawnStartPositionLeft.y, player.CircleSpawnStartPositionLeft.z - _diameter / 2); _circleArg.Radius = _diameter / 2; _circleArg.Speed = MinCircleSize + (MaxCircleSize - _diameter) * ((MaxCircleSpeed - MinCircleSpeed) / (MaxCircleSize - MinCircleSize)); _circle.Init(_circleArg); }