private void GetBufferFromServer(object sender, SocketAsyncEventArgs e) { MemoryStream stream = new MemoryStream(e.Buffer, 0, e.BytesTransferred); if (stream.Capacity != 0) { try { ObjectsLists buffer = (ObjectsLists)serializer.Deserialize(stream); lock (gameCore.bufferObjectsList) { gameCore.bufferObjectsList = buffer; } } catch (Exception exception) { MessageBox.Show(exception.ToString(), "Bomberman", MessageBoxButtons.OK); } finally { if (!isEnded) { SocketAsyncEventArgs eventArgs = new SocketAsyncEventArgs(); eventArgs.Completed += GetBufferFromServer; byte[] temp = new byte[1024 * 1024]; eventArgs.SetBuffer(temp, 0, 1024 * 1024); (sender as Socket).ReceiveAsync(eventArgs); } } } }
public GameCoreClient ( int width, int height, Graphics graphicControl, Client client, int id, string dirResources ) { this.graphicControl = graphicControl; timer = new System.Timers.Timer(); delay = 60; timer.Interval = delay; timer.Elapsed += TimerEvent; this.id = id; this.client = client; this.objectsList = new ObjectsLists(); this.bufferObjectsList = new ObjectsLists(); this.explosionsTexture = new List <Bitmap>(); buffer1 = currentContext.Allocate(graphicControl, new Rectangle(0, 0, width, height)); buffer2 = currentContext.Allocate(graphicControl, new Rectangle(0, 0, width, height)); currBuffer = buffer1; buffColor = Color.ForestGreen; brush = new SolidBrush(Color.Black); font = new Font("Arial", 8); LoadImages(dirResources); }
public GameCoreServer ( int width, int height, Size playerSize, Size playerOnDeathSize, Size bombSize, Size explosionSize, Size wallSize, string dirResources, SendFunc sendFunc ) { this.map = new PhysicalMap(width, height); objectsList = new ObjectsLists(); spawnPoints = new List <Point>(); this.sendFunc = sendFunc; timer = new Timer(); delay = 60; timer.Interval = delay; timer.Elapsed += TimerEvent; randomGen = new Random(); scriptEngine = new ScriptEngine(); this.playerSize = playerSize; this.bombSize = bombSize; this.explosionSize = explosionSize; this.wallSize = wallSize; this.playerOnDeathSize = playerOnDeathSize; GenerateWalls(); }
public void ChangeBuffer() { if (currBuffer == buffer1) { currBuffer = buffer2; } else { currBuffer = buffer1; } objectsList = bufferObjectsList; }