public void SpawnPlayer(StarCollectorPeer peer) { Player player = new Player() { owner = peer, actorID = AllocateActorID() }; listPlayer.Add(player); //EventData evt = new EventData() //{ // Code = (byte)AckEventType.CreateActor, // Parameters = new Dictionary<byte, object>() // { // {0, player.actorType}, // {1 , player.actorID}, // {2, player.posX}, // {3, player.posY}, // {4, peer.playerID} // } //}; //BroadcastEvent(evt, new SendParameters()); }
public void OnOperationRequest(StarCollectorPeer sender, OperationRequest operationRequest, SendParameters sendParameters) { executionFiber.Enqueue(() => { this.ProcessMessage(sender, operationRequest, sendParameters); }); }
public void ProcessMessage(StarCollectorPeer sender, OperationRequest operationRequest, SendParameters sendParameters) { if (operationRequest.OperationCode == (byte)AckRequestType.MoveCommand) { // move command from player long actorID = (long)operationRequest.Parameters[0]; float velX = (float)operationRequest.Parameters[1]; float velY = (float)operationRequest.Parameters[2]; // find actor Player player = (listPlayer.Find(pl => { return(pl.actorID == actorID); })); player.velocityX = velX; player.velocityY = velY; //List<Player> listOtherPlayer = } }
public void PeerLeft(StarCollectorPeer peer) { executionFiber.Enqueue(() => { listPeer.Remove(peer); }); Player player = listPlayer.Where(a => a.owner == peer).FirstOrDefault(); if (player != null) { EventData evt = new EventData() { Code = (byte)AckEventType.DestroyActor, Parameters = new Dictionary <byte, object>() }; evt.Parameters[0] = player.actorID; BroadcastEvent(evt, new SendParameters()); listPlayer.Remove(player); } }
public void PeerJoined(StarCollectorPeer peer) { executionFiber.Enqueue( () => { listPeer.Add(peer); SpawnPlayer(peer); }); #region Test code //List<MPlayer> listTest = new List<MPlayer>() //{ // new MPlayer() // { // name = "ducanh", // id =1 // }, // new MPlayer() // { // name = "hoanganh", // id = 2 // } //}; //EventData evtDataPlayer = new EventData() //{ // Code = (byte)AckEventType.TestData, // Parameters = new Dictionary<byte, object> // { // {(byte)ActorType.Player,GeneralFunc.Serialize(listTest)} // } //}; //peer.SendEvent(evtDataPlayer, new SendParameters()); #endregion // send player CreateActor events for players and stars which are in interest //foreach (var p in listPlayer) //{ // EventData evt = new EventData() // { // Code = (byte)AckEventType.CreateActor, // Parameters = new Dictionary<byte, object>() // { // {0, p.actorType}, // {1, p.actorID}, // {2, p.posX}, // {3, p.posY}, // {4, (p.owner as StarCollectorPeer).playerID} // } // }; //} //peer.SendEvent(evt, new SendParameters()); //EventData evtDataPlayer = new EventData() //{ // Code = (byte)AckEventType.CreateActor, // Parameters = new Dictionary<byte, object> // { // {(byte)ActorType.Player,listPlayer} // } //}; //peer.SendEvent(evtDataPlayer, new SendParameters()); //peer.SendEvent() foreach (var s in listStar) { EventData evt = new EventData() { Code = (byte)AckEventType.CreateActor, Parameters = new Dictionary<byte, object>() { {0, s.actorType}, {1, s.actorID}, {2, s.posX}, {3, s.posY} } }; peer.SendEvent(evt, new SendParameters()); } //EventData evtDataStar = new EventData() //{ // Code = (byte)AckEventType.CreateActor, // Parameters = new Dictionary<byte, object> // { // {(byte)ActorType.Star,listStar} // } //}; //peer.SendEvent(evtDataStar, new SendParameters()); }
public void ProcessMessage(StarCollectorPeer sender, OperationRequest operationRequest, SendParameters sendParameters) { if(operationRequest.OperationCode == (byte)AckRequestType.MoveCommand) { // move command from player long actorID = (long)operationRequest.Parameters[0]; float velX = (float)operationRequest.Parameters[1]; float velY = (float)operationRequest.Parameters[2]; // find actor Player player = (listPlayer.Find(pl => { return pl.actorID == actorID; })); player.velocityX = velX; player.velocityY = velY; //List<Player> listOtherPlayer = } }
public void PeerLeft(StarCollectorPeer peer) { executionFiber.Enqueue(() => { listPeer.Remove(peer); }); Player player = listPlayer.Where(a => a.owner == peer).FirstOrDefault(); if (player != null) { EventData evt = new EventData() { Code = (byte)AckEventType.DestroyActor, Parameters = new Dictionary<byte, object>() }; evt.Parameters[0] = player.actorID; BroadcastEvent(evt, new SendParameters()); listPlayer.Remove(player); } }
public void PeerJoined(StarCollectorPeer peer) { executionFiber.Enqueue(() => { listPeer.Add(peer); SpawnPlayer(peer); }); #region Test code //List<MPlayer> listTest = new List<MPlayer>() //{ // new MPlayer() // { // name = "ducanh", // id =1 // }, // new MPlayer() // { // name = "hoanganh", // id = 2 // } //}; //EventData evtDataPlayer = new EventData() //{ // Code = (byte)AckEventType.TestData, // Parameters = new Dictionary<byte, object> // { // {(byte)ActorType.Player,GeneralFunc.Serialize(listTest)} // } //}; //peer.SendEvent(evtDataPlayer, new SendParameters()); #endregion // send player CreateActor events for players and stars which are in interest //foreach (var p in listPlayer) //{ // EventData evt = new EventData() // { // Code = (byte)AckEventType.CreateActor, // Parameters = new Dictionary<byte, object>() // { // {0, p.actorType}, // {1, p.actorID}, // {2, p.posX}, // {3, p.posY}, // {4, (p.owner as StarCollectorPeer).playerID} // } // }; //} //peer.SendEvent(evt, new SendParameters()); //EventData evtDataPlayer = new EventData() //{ // Code = (byte)AckEventType.CreateActor, // Parameters = new Dictionary<byte, object> // { // {(byte)ActorType.Player,listPlayer} // } //}; //peer.SendEvent(evtDataPlayer, new SendParameters()); //peer.SendEvent() foreach (var s in listStar) { EventData evt = new EventData() { Code = (byte)AckEventType.CreateActor, Parameters = new Dictionary <byte, object>() { { 0, s.actorType }, { 1, s.actorID }, { 2, s.posX }, { 3, s.posY } } }; peer.SendEvent(evt, new SendParameters()); } //EventData evtDataStar = new EventData() //{ // Code = (byte)AckEventType.CreateActor, // Parameters = new Dictionary<byte, object> // { // {(byte)ActorType.Star,listStar} // } //}; //peer.SendEvent(evtDataStar, new SendParameters()); }