Пример #1
0
        private void timer1_Tick(object sender, EventArgs e)
        {
            if (facing1 == "W")
            {
                _rect1.Y += 15;
            }
            if (facing1 == "S")
            {
                _rect1.Y -= 15;
            }
            if (facing1 == "A")
            {
                _rect1.X -= 15;
            }
            if (facing1 == "D")
            {
                _rect1.X += 15;
            }

            if (facing2 == "W")
            {
                _rect2.Y += 15;
            }
            if (facing2 == "S")
            {
                _rect2.Y -= 15;
            }
            if (facing2 == "A")
            {
                _rect2.X -= 15;
            }
            if (facing2 == "D")
            {
                _rect2.X += 15;
            }

            var snakeRect   = new Rectangle(_rect1.Location.X, _rect1.Location.Y, _rect1.Width, _rect1.Height);
            var isCollision = snakeRect.Contains(_appleRect.Location.X, _appleRect.Location.Y);

            if (isCollision)
            {
                PacketData.ApplePos pos = new PacketData.ApplePos("1");
                _client.TCPSend(pos);
                PacketData.Score scorePacket = new PacketData.Score("1.1");
                _client.TCPSend(scorePacket);
            }

            snakeRect   = new Rectangle(_rect2.Location.X, _rect2.Location.Y, _rect2.Width, _rect2.Height);
            isCollision = snakeRect.Contains(_appleRect.Location.X, _appleRect.Location.Y);

            if (isCollision)
            {
                PacketData.ApplePos pos = new PacketData.ApplePos("1");
                _client.TCPSend(pos);
                PacketData.Score scorePacket = new PacketData.Score("1.2");
                _client.TCPSend(scorePacket);
            }

            Invalidate();
        }
Пример #2
0
        void SnakeGameApple(int clientID1, int clientID2)
        {
            Random rnd      = new Random();
            string position = (rnd.Next(20, 500).ToString() + "." + rnd.Next(20, 350).ToString());

            PacketData.ApplePos posPacket = new PacketData.ApplePos(position);
            send(posPacket, clients[clientID1]);
            send(posPacket, clients[clientID2]);
        }
Пример #3
0
        public void ProcessServerResponse()
        {
            int numOfIncomingBytes = 0;

            while ((numOfIncomingBytes = reader.ReadInt32()) != 0)
            {
                byte[] buffer = reader.ReadBytes(numOfIncomingBytes);
                memoryStream.Write(buffer, 0, numOfIncomingBytes);
                memoryStream.Position  = 0;
                binaryFormatter.Binder = new MyBinder.MyBinder();
                PacketData.Packet rawPacket = (PacketData.Packet)binaryFormatter.Deserialize(memoryStream);
                memoryStream.SetLength(0);

                switch (rawPacket.type)
                {
                case PacketData.PacketType.CHATMESSAGE:
                    PacketData.ChatMessagePacket packet = (PacketData.ChatMessagePacket)rawPacket;
                    messageForm.UpdateChatWindow(packet.message);
                    break;

                case PacketData.PacketType.GAME:
                    startSnakeGame();
                    break;

                case PacketData.PacketType.SNAKEGAME:
                    Socket udpSocket = udpClient.Client;
                    PacketData.LoginPacket loginpacket = new PacketData.LoginPacket((IPEndPoint)udpSocket.LocalEndPoint);
                    TCPSend(loginpacket);
                    PacketData.GameMovement gamemovement = (PacketData.GameMovement)rawPacket;
                    snakeGame.UpdateSnake(gamemovement.input);
                    break;

                case PacketData.PacketType.SCORE:
                    PacketData.Score score = (PacketData.Score)rawPacket;
                    snakeGame.UpdateScore(score.input);
                    break;

                case PacketData.PacketType.APPLEPOS:
                    PacketData.ApplePos pos = (PacketData.ApplePos)rawPacket;
                    snakeGame.SetApplePos(pos.pos);
                    break;

                case PacketData.PacketType.PLAYER:
                    PacketData.Player player = (PacketData.Player)rawPacket;
                    snakeGame.startingText(player.player);
                    break;

                case PacketData.PacketType.STOPGAME:
                    snakeGame.Close();
                    break;

                case PacketData.PacketType.QUIT:

                    TCPStop();
                    //PacketData.QuitPacket quitPacket = (PacketData.QuitPacket)rawPacket;
                    //messageForm.UpdateChatWindow(quitPacket.message);
                    break;

                default:

                    break;
                }
            }
        }
Пример #4
0
        void UDPServerResponse()
        {
            //IPEndPoint remoteIpEndPoint = new IPEndPoint(IPAddress.Any, 0);
            //Byte[] receiveBytes = udpClient.Receive(ref remoteIpEndPoint);

            int numOfIncomingBytes = 0;

            byte[] bytes = new byte[256];

            while ((numOfIncomingBytes = reader.ReadInt32()) != 0)
            {
                byte[] buffer = reader.ReadBytes(numOfIncomingBytes);
                memoryStream.Write(buffer, 0, numOfIncomingBytes);

                memoryStream.Position  = 0;
                binaryFormatter.Binder = new MyBinder.MyBinder();
                PacketData.Packet rawPacket = (PacketData.Packet)binaryFormatter.Deserialize(memoryStream);
                memoryStream.SetLength(0);

                switch (rawPacket.type)
                {
                case PacketData.PacketType.LOGIN:
                    PacketData.LoginPacket loginPacket = (PacketData.LoginPacket)rawPacket;
                    HandlePacket(loginPacket.endPoint);
                    break;

                case PacketData.PacketType.CHATMESSAGE:
                    PacketData.ChatMessagePacket packet = (PacketData.ChatMessagePacket)rawPacket;
                    messageForm.UpdateChatWindow(packet.message);
                    break;

                case PacketData.PacketType.GAME:
                    startSnakeGame();
                    break;

                case PacketData.PacketType.SNAKEGAME:
                    PacketData.GameMovement gameMovement = (PacketData.GameMovement)rawPacket;
                    snakeGame.UpdateSnake(gameMovement.input);
                    break;

                case PacketData.PacketType.SCORE:
                    PacketData.Score score = (PacketData.Score)rawPacket;
                    snakeGame.UpdateScore(score.input);
                    break;

                case PacketData.PacketType.APPLEPOS:
                    PacketData.ApplePos pos = (PacketData.ApplePos)rawPacket;
                    snakeGame.SetApplePos(pos.pos);
                    break;

                case PacketData.PacketType.PLAYER:
                    PacketData.Player player = (PacketData.Player)rawPacket;
                    snakeGame.startingText(player.player);
                    break;

                case PacketData.PacketType.STOPGAME:
                    snakeGame.CloseForm();
                    //PacketData.StopGame stopgame = new PacketData.StopGame();
                    //TCPSend(stopgame);
                    //snakeGame.Close();
                    break;

                case PacketData.PacketType.QUIT:
                    UDPStop();
                    break;
                }
            }
        }