Esempio n. 1
0
        /// <summary>
        /// Every frame
        /// </summary>
        void Update()
        {
            var p2p = EOS.p2p;

            var playerUserId = PlayerCtrl.userId;

            if (playerUserId != null)
            {
                var size = p2p.GetNextReceivedPacketSize(playerUserId, EOS.channelId);
                if (size > 0)
                {
                    var(remoteUserId, _, _, rawData, _) = p2p.ReceivePacket(playerUserId, size, EOS.channelId);
                    Ctrl.idToCtrl[remoteUserId].ReceivePacket(MarshalTools.Deserialize <PacketData>(rawData));
                }
            }
        }
Esempio n. 2
0
        /// <summary>
        /// Every frame
        /// </summary>
        protected override void Tick()
        {
            // Damage manipulate
            if (chr.isDamage)
            {
                hp--;
                chr.isDamage = false;
            }
            if (hp == 0)
            {
                chr.DestroyNotNull();
            }

            // Input manipulate
            var isMove = false;
            var chrPos = chr.GetPosition();
            var speed  = 5; // TODO Temp

            if (Input.GetKey(KeyCode.W))
            {
                isMove  = true;
                chrPos += chr.transform.forward * Time.deltaTime * speed;
            }
            if (Input.GetKey(KeyCode.S))
            {
                isMove  = true;
                chrPos += chr.transform.forward * -1 * Time.deltaTime * speed;
            }
            if (Input.GetKey(KeyCode.D))
            {
                isMove  = true;
                chrPos += chr.transform.right * Time.deltaTime * speed;
            }
            if (Input.GetKey(KeyCode.A))
            {
                isMove  = true;
                chrPos += chr.transform.right * -1 * Time.deltaTime * speed;
            }
            if (isMove)
            {
                chr.SetPosition(chrPos);
            }

            var dx = Input.GetAxis("Mouse X") / 2f / Screen.width * 4000;
            var dy = Input.GetAxis("Mouse Y") / 2f / Screen.height * 4000;

            if (UI.isLockMouse == false)
            {
                dx = 0f;
                dy = 0f;
            }


            var bodyRot = chr.transform.localRotation.eulerAngles.y + dx;
            var camRot  = chr.camera.transform.localRotation.eulerAngles.x - dy;

            if (dy > 0 && (camRot < -90f && camRot > -180f || camRot < 270f && camRot > 180f))
            {
                camRot = 271f;
            }
            else if (dy < 0 && camRot > 90f && camRot < 180f)
            {
                camRot = 89f;
            }
            chr.Manipulate(chrPos, bodyRot, camRot, Input.GetMouseButtonDown(0));

            // Send Packet
            var packet = new PacketData {
                position = chrPos, rotX = bodyRot, rotY = camRot, isFire = Input.GetMouseButtonDown(0) ? (byte)1 : (byte)0
            };

            EOSP2P.Send(MarshalTools.Serialize(packet));

            if (chr.state == MoveState.LANDING)
            {
                if (Input.GetKey(KeyCode.Space))
                {
                    chr.Jump();
                }
            }
        }