/// <summary> /// Request for Server Information /// </summary> /// <remarks> /// Order: /// String TokenID /// </remarks> /// <param name="message"></param> private void ServerInfoRequest(InputMessage message) { string tokenID = message.Reader.ReadString(); ClientInfo client; string detailMessage; bool success = GameServer.UserManager.GetUserByTokenIDSecure(tokenID, message.ConnectionId, out client, out detailMessage); ServerInfoResponse(message.ConnectionId, success, detailMessage); }
//Here is the Action private void HandleMessage(InputMessage message) { switch (message.MsgSubject) { case Subjects.LoginRequest : LoginRequest(message); break; case Subjects.LogOutRequest : DisconnectRequest(message); break; case Subjects.ServerInfoRequest : ServerInfoRequest(message); break; } }
public void HandleInputMessage(InputMessage message) { switch(message.Kind) { // Intentional fallthrough case InputMessage.MessageType.ControlsAction: case InputMessage.MessageType.ControlsUp: case InputMessage.MessageType.ControlsDown: case InputMessage.MessageType.ControlsLeft: case InputMessage.MessageType.ControlsRight: connectionToServer.Send(message); break; } }
public void ProcessMessage(InputMessage message) { if (message.InputType != InputMessage.InputTypes.TwoFingerTwist) { return; } if (message.MessageType == InputMessage.MessageTypes.Update) { _raycast.CastPoint = (message.FingerPositions[0] + message.FingerPositions[1]) / 2.0f; _raycast.Invalidate(); //Debug.Log(string.Format("mag: {0}, didHit: {1}", _input.Delta.magnitude, _raycast.DidHit)); if (Mathf.Abs(message.GestureData[0]) > _startThreshold && _raycast.DidHit) { _rotateDelta = message.GestureData[0]; } if (Math.Abs(_rotateDelta) > _startThreshold) { float delta = _rotateDelta * _rotateFactor; TransformClone t = TransformClone.FromTransform(_targetCamera.transform); //Debug.Log("Delta: " + delta); _deltaRot = Quaternion.AngleAxis(delta, Vector3.up); Vector3 currentPos = t.Position; Vector3 newPos = currentPos; newPos = newPos - _raycast.HitPoint; newPos = _deltaRot * newPos; newPos += _raycast.HitPoint; _deltaPos = newPos - currentPos; _rotateDelta *= _dampingFactor; _pendingUpdate = true; message.Use(); return; } } }
public void ProcessMessage(InputMessage message) { _enabled &= !(message.InputType == InputMessage.InputTypes.TwoFingerPinch && message.MessageType == InputMessage.MessageTypes.Update); }
private void ParseVipState(InputMessage message) { uint creatureId = message.GetU32(); byte status = message.GetU8(); }
public virtual void HandleInput(InputMessage msg) { }
/** * 查看银行状态 返回 * @param state 银行 状态 是:0,否:1 */ public void GC_BANK_STATE(InputMessage data) { int state = data.GetInt(); HumanHandler.Instance().GC_BANK_STATE(state); }
/** * 修改银行密码 返回 * @param state 修改银行密码 是否成功 是:0,否:1 */ public void GC_BANK_CHANGE_PASSWORD(InputMessage data) { int state = data.GetInt(); HumanHandler.Instance().GC_BANK_CHANGE_PASSWORD(state); }
public override InputMessageResult HandleMessage(InputMessage message) { bool GetControlAtPoint(in Point2D mousePosition, out Control control, out Point2D controlRelativePosition) { control = _windowManager.GetControlAtPoint(mousePosition); if (control != null) { controlRelativePosition = control.PointToClient(mousePosition); return(true); } controlRelativePosition = Point2D.Zero;; return(false); } var context = new ControlCallbackContext(_windowManager, _game); switch (message.MessageType) { case InputMessageType.MouseMove: { var mouseOverControls = _windowManager.GetControlsAtPoint(message.Value.MousePosition).ToList(); foreach (var control in _lastMouseOverControls) { if (!mouseOverControls.Contains(control)) { control.InputCallback.Invoke( control, new WndWindowMessage(WndWindowMessageType.MouseExit, control), context); } } foreach (var control in mouseOverControls) { if (!_lastMouseOverControls.Contains(control)) { control.InputCallback.Invoke( control, new WndWindowMessage(WndWindowMessageType.MouseEnter, control), context); } } _lastMouseOverControls.Clear(); _lastMouseOverControls.AddRange(mouseOverControls); foreach (var control in mouseOverControls) { var mousePosition = control.PointToClient(message.Value.MousePosition); control.InputCallback.Invoke( control, new WndWindowMessage(WndWindowMessageType.MouseMove, control, mousePosition), context); } return(mouseOverControls.Count > 0 ? InputMessageResult.Handled : InputMessageResult.NotHandled); } case InputMessageType.MouseLeftButtonDown: { if (GetControlAtPoint(message.Value.MousePosition, out var element, out var mousePosition)) { element.InputCallback.Invoke( element, new WndWindowMessage(WndWindowMessageType.MouseDown, element, mousePosition), context); return(InputMessageResult.Handled); } break; } case InputMessageType.MouseLeftButtonUp: { if (GetControlAtPoint(message.Value.MousePosition, out var element, out var mousePosition)) { element.InputCallback.Invoke( element, new WndWindowMessage(WndWindowMessageType.MouseUp, element, mousePosition), context); return(InputMessageResult.Handled); } break; } case InputMessageType.MouseRightButtonDown: { if (GetControlAtPoint(message.Value.MousePosition, out var element, out var mousePosition)) { element.InputCallback.Invoke( element, new WndWindowMessage(WndWindowMessageType.MouseRightDown, element, mousePosition), context); return(InputMessageResult.Handled); } break; } case InputMessageType.MouseRightButtonUp: { if (GetControlAtPoint(message.Value.MousePosition, out var element, out var mousePosition)) { element.InputCallback.Invoke( element, new WndWindowMessage(WndWindowMessageType.MouseRightUp, element, mousePosition), context); return(InputMessageResult.Handled); } break; } // For the time being, just consume middle click events so that they don't go through controls: case InputMessageType.MouseMiddleButtonDown: case InputMessageType.MouseMiddleButtonUp: { return(GetControlAtPoint(message.Value.MousePosition, out var _, out var _) ? InputMessageResult.Handled : InputMessageResult.NotHandled); } case InputMessageType.KeyDown: { var control = _windowManager.FocussedControl; if (control != null) { control?.InputCallback.Invoke( control, new WndWindowMessage(WndWindowMessageType.KeyDown, control, null, message.Value.Key, message.Value.Modifiers), context ); return(InputMessageResult.Handled); } break; } } return(InputMessageResult.NotHandled); }
public void addMessageToQueue(InputMessage message) { lock (lockObject) { InputMessagesQueue.Enqueue(message); Monitor.PulseAll(lockObject); } }
//处理输入 public virtual bool OnInput(InputMessage msg) { return(false); }
/** * 更换色钟返回 * @param itemId 目标色钟的itemId */ public void GC_BAZOO_ITEM_CLOCK_CHANGE(InputMessage data) { int itemId = data.GetInt(); ItemHandler.Instance().GC_BAZOO_ITEM_CLOCK_CHANGE(itemId); }
public void onServerConnection(InputMessage message) { Debug.Log("GameServer : New Connection on Server : " + message.ConnectionId); }
public void ProcessMessage(InputMessage message) { if (message.InputType != InputMessage.InputTypes.TwoFingerPinch) { return; } if (message.MessageType == InputMessage.MessageTypes.Update) { _raycast.CastPoint = (message.FingerPositions[0] + message.FingerPositions[1]) / 2.0f; _raycast.Invalidate(); //Debug.Log(string.Format("mag: {0}, didHit: {1}", _input.Delta.magnitude, _raycast.DidHit)); if (Mathf.Abs(message.GestureData[0]) > _startThreshold && _raycast.DidHit) { TransformClone t = TransformClone.FromTransform(_targetCamera.transform); _worldDelta = (_raycast.HitPoint - t.Position).normalized * Mathf.Clamp(message.GestureData[0], -_deltaClamp, _deltaClamp) * _zoomFactor; } float distance = Vector3.Distance(_targetCamera.transform.position, _raycast.HitPoint); if (_limited && ( distance < _minHeight || distance > _maxHeight)) { float overshoot; float a; if (distance < _minHeight) { overshoot = _minHeight - distance; a = Vector3.Angle(_worldDelta.normalized, -_targetCamera.transform.forward); } else { overshoot = distance - _maxHeight; a = Vector3.Angle(_worldDelta.normalized, _targetCamera.transform.forward); } float factor = 1f - Mathf.Clamp((overshoot / _tolerance), 0f, 1f); if (a > 90f) _worldDelta *= factor; } if (_worldDelta.magnitude > 0.01f) { Vector3 mod = _worldDelta; _worldDelta *= 0.85f; _deltaPos = mod; _pendingUpdate = true; message.Use(); return; } } }
private void DispatchMessage(InputMessage message, IntPtr wParam, IntPtr lParam) { if (DispatchMethod == MessageDispatchMethod.Post) { StUtil.Native.Internal.NativeMethods.PostMessage(Handle, (int)message, wParam, lParam); } else { StUtil.Native.Internal.NativeMethods.SendMessage(Handle, (int)message, wParam, lParam); } }
public void Listen() { bool stopListen = false; ushort messagesReaded = 0; while (!Disconnect && !stopListen) { messagesReaded++; int recConnectionId; int recChannelId; byte[] recBuffer = new byte[1024]; int bufferSize = 1024; int dataSize; byte error; NetworkReader reader; InputMessage message; NetworkEventType recNetworkEvent; try { recNetworkEvent = NetworkTransport.ReceiveFromHost(SocketId, out recConnectionId, out recChannelId, recBuffer, bufferSize, out dataSize, out error); if (error != (byte)NetworkError.Ok) { Debug.Log("Error [" + (NetworkError)error + "] receiving a Message from : " + SocketId + " | conID : " + recConnectionId + " | channel : " + recChannelId); } else { switch (recNetworkEvent) { case NetworkEventType.Nothing: stopListen = true; break; case NetworkEventType.ConnectEvent: string address; int remotePort; NetworkID networkID; NodeID nodeID; NetworkTransport.GetConnectionInfo(SocketId, recConnectionId, out address, out remotePort, out networkID, out nodeID, out error); if (error == (byte)NetworkError.Ok) { LLApiConnection connection = new LLApiConnection(recConnectionId, address, remotePort); addConnection(connection); } reader = new NetworkReader(recBuffer); message = new InputMessage(recConnectionId, SocketId, recChannelId, Subjects.Connect, reader, GameServer.getServerTime()); addInputMessageToQueue(message); Debug.Log("New Connection: " + SocketId + "[" + address + ":" + remotePort + "] con: " + recConnectionId + " Size: " + dataSize); break; case NetworkEventType.DataEvent: Debug.Log("Incoming message Dataevent received: " + SocketId + " con: " + recConnectionId + " Size: " + dataSize); reader = new NetworkReader(recBuffer); Subjects subject = (Subjects)reader.ReadUInt16(); message = new InputMessage(recConnectionId, SocketId, recChannelId, subject, reader, GameServer.getServerTime()); addInputMessageToQueue(message); break; case NetworkEventType.DisconnectEvent: Debug.Log("Remote client event disconnected: " + SocketId + " con: " + recConnectionId + " Size: " + dataSize); reader = new NetworkReader(recBuffer); message = new InputMessage(recConnectionId, SocketId, recChannelId, Subjects.Disconnect, reader, GameServer.getServerTime()); addInputMessageToQueue(message); removeConnection(recConnectionId); break; } } }catch(Exception e) { Debug.LogError("LLApiServer Error Receiving Data : " + e.Message); Debug.LogException(e); } finally { if (messagesReaded >= MaxMessages) { stopListen = true; } } } }
/** * 响应客户端请求发送邮件 */ public void GC_SEND_MAIL(InputMessage data) { MailHandler.Instance().GC_SEND_MAIL(); }
/** * 获得优惠券 * @param couponId 优惠券 模板的ID */ public void GC_OBTAIN_COUPON(InputMessage data) { int couponId = data.GetInt(); RechargeHandler.Instance().GC_OBTAIN_COUPON(couponId); }
public bool OnInputMsg(InputMessage msg) { Debug.Log(string.Format("world:{0} isdown:{1}", msg.Word, msg.IsDown)); m_TurnSystem.OnInputMsg(msg); return(false); }
/** * 优惠券是否存在 * @param couponExist 是否存在 1 是 有优惠券 0 是没有优惠券 */ public void GC_COUPON_EXIST(InputMessage data) { int couponExist = data.GetInt(); RechargeHandler.Instance().GC_COUPON_EXIST(couponExist); }
/// <summary> /// Disconnect the User from The System /// </summary> /// <remarks> /// Order: /// String TokenID /// </remarks> /// <param name="message"> Message To Handle </param> private void DisconnectRequest(InputMessage message) { string tokenID = message.Reader.ReadString(); string loginMessage; bool success = GameServer.UserManager.DisconnectUserByTokenID(tokenID); if (success) { loginMessage = "User Disconnected Successfully"; } else { loginMessage = "Error in User Disconnection"; } DisconnectResponse(message.ConnectionId, success, loginMessage); Debug.Log(loginMessage); }
/** * 博趣 第三方请求订单的返回页面(前端直接访问) * @param htmlPage base64编码之后的带参数的页面 */ public void GC_REQUEST_ORDER_THIRD_PARTY(InputMessage data) { string htmlPage = data.GetString(); RechargeHandler.Instance().GC_REQUEST_ORDER_THIRD_PARTY(htmlPage); }
private void addInputMessageToQueue(InputMessage message) { lock (lockPocessObject) { if (message != null) { Debug.Log("Message Added to Queue : " + message.MsgSubject); } InputMessagesQueue.Enqueue(message); Monitor.PulseAll(lockPocessObject); } }
/** * 验证订单亚马逊订单返回 * @param receiptId 成功的收据ID */ public void GC_ORDER_AMAZON_DELIVERY(InputMessage data) { string receiptId = data.GetString(); RechargeHandler.Instance().GC_ORDER_AMAZON_DELIVERY(receiptId); }
/** * 设置银行密码 返回 */ public void GC_BANK_SET_PASSWORD(InputMessage data) { HumanHandler.Instance().GC_BANK_SET_PASSWORD(); }
public HttpStatusCode Action1(InputMessage message) { // perform the action return(HttpStatusCode.OK); }
/** * 银行 输入验证码 确认 返回 * @param codeState 验证码 (是:0,否:1)正确 */ public void GC_BANK_MAKE_SURE_IDENTIFYING_CODE(InputMessage data) { int codeState = data.GetInt(); HumanHandler.Instance().GC_BANK_MAKE_SURE_IDENTIFYING_CODE(codeState); }
public override InputMessageResult HandleMessage(InputMessage message) { switch (message.MessageType) { case InputMessageType.MouseMove: { var position = message.Value.MousePosition; if (_leftMouseDown || _rightMouseDown || _middleMouseDown) { _deltaX += position.X - _lastX; _deltaY += position.Y - _lastY; _lastX = position.X; _lastY = position.Y; } break; } case InputMessageType.MouseLeftButtonDown: case InputMessageType.MouseMiddleButtonDown: case InputMessageType.MouseRightButtonDown: { var position = message.Value.MousePosition; _lastX = position.X; _lastY = position.Y; switch (message.MessageType) { case InputMessageType.MouseLeftButtonDown: _leftMouseDown = true; break; case InputMessageType.MouseMiddleButtonDown: _middleMouseDown = true; break; case InputMessageType.MouseRightButtonDown: _rightMouseDown = true; break; } break; } case InputMessageType.MouseLeftButtonUp: _leftMouseDown = false; break; case InputMessageType.MouseMiddleButtonUp: _middleMouseDown = false; break; case InputMessageType.MouseRightButtonUp: _rightMouseDown = false; break; case InputMessageType.MouseWheel: _scrollWheelValue += message.Value.ScrollWheel; break; case InputMessageType.KeyDown: { var key = message.Value.Key; if (!_pressedKeys.Contains(key)) { _pressedKeys.Add(key); } break; } case InputMessageType.KeyUp: { var key = message.Value.Key; _pressedKeys.Remove(key); break; } } return(InputMessageResult.Handled); }
private void ParseVipLogout(InputMessage message) { uint creatureId = message.GetU32(); }
/** * 更改性别 * @param sex 性别 */ public void GC_HUMAN_CHANGE_SEX(InputMessage data) { int sex = data.GetInt(); HumanHandler.Instance().GC_HUMAN_CHANGE_SEX(sex); }
public override InputMessageResult HandleMessage(InputMessage message) { var context = new ControlCallbackContext(_windowManager, _game); switch (message.MessageType) { case InputMessageType.MouseMove: { var mouseOverControls = _windowManager.GetControlsAtPoint(message.Value.MousePosition).ToList(); foreach (var control in _lastMouseOverControls) { if (!mouseOverControls.Contains(control)) { control.InputCallback.Invoke( control, new WndWindowMessage(WndWindowMessageType.MouseExit, control), context); } } foreach (var control in mouseOverControls) { if (!_lastMouseOverControls.Contains(control)) { control.InputCallback.Invoke( control, new WndWindowMessage(WndWindowMessageType.MouseEnter, control), context); } } _lastMouseOverControls.Clear(); _lastMouseOverControls.AddRange(mouseOverControls); foreach (var control in mouseOverControls) { var mousePosition = control.PointToClient(message.Value.MousePosition); control.InputCallback.Invoke( control, new WndWindowMessage(WndWindowMessageType.MouseMove, control, mousePosition), context); } return(mouseOverControls.Count > 0 ? InputMessageResult.Handled : InputMessageResult.NotHandled); } case InputMessageType.MouseLeftButtonDown: { var element = _windowManager.GetControlAtPoint(message.Value.MousePosition); if (element != null) { var mousePosition = element.PointToClient(message.Value.MousePosition); element.InputCallback.Invoke( element, new WndWindowMessage(WndWindowMessageType.MouseDown, element, mousePosition), context); return(InputMessageResult.Handled); } break; } case InputMessageType.MouseLeftButtonUp: { var element = _windowManager.GetControlAtPoint(message.Value.MousePosition); if (element != null) { var mousePosition = element.PointToClient(message.Value.MousePosition); element.InputCallback.Invoke( element, new WndWindowMessage(WndWindowMessageType.MouseUp, element, mousePosition), context); return(InputMessageResult.Handled); } break; } case InputMessageType.KeyDown: { if (message.Value.Key == Key.Escape && _windowManager.OpenWindowCount > 1) { _windowManager.PopWindow(); return(InputMessageResult.Handled); } break; } } return(InputMessageResult.NotHandled); }
/** * 更改图像 * @param img 玩家图像 */ public void GC_HUMAN_CHANGE_IMG(InputMessage data) { string img = data.GetString(); HumanHandler.Instance().GC_HUMAN_CHANGE_IMG(img); }
/** * 响应客户端请求全部奖品领取奖励 * @param mailId 邮件id */ public void GC_DEAL_WITH_REWARD(InputMessage data) { long mailId = data.GetLong(); MailHandler.Instance().GC_DEAL_WITH_REWARD(mailId); }
/** * VIP等级的修改 * @param vip VIP等级的修改 */ public void GC_HUMAN_CHANGE_VIP(InputMessage data) { int vip = data.GetInt(); HumanHandler.Instance().GC_HUMAN_CHANGE_VIP(vip); }
public void ProcessMessage(InputMessage message) { _enabled &= !(message.InputType == InputMessage.InputTypes.OneFingerDrag && message.MessageType == InputMessage.MessageTypes.Update); }
/** * 观看视频返回 */ public void GC_HUMAN_VIDEO_NUM(InputMessage data) { HumanHandler.Instance().GC_HUMAN_VIDEO_NUM(); }
public Input_Message(InputMessage proto) { protobuf = proto; }
public static List <p_AllMsg.p_CustomSyncMsg> Buffer_SyncFrame_msg_list(List <CustomSyncMsg> msg_list) { List <p_AllMsg.p_CustomSyncMsg> p_msg_list = new List <p_AllMsg.p_CustomSyncMsg>(); foreach (CustomSyncMsg msg in msg_list) { if (msg.msg_type == (int)RequestType.ENTERAREA) { EnterAreaMessage enterArea = msg as EnterAreaMessage; p_AllMsg.p_EnterAreaMessage p_msg = new p_AllMsg.p_EnterAreaMessage(); p_msg.id = enterArea.id; p_msg.health = enterArea.health;; p_msg.position_x = enterArea.position.x; p_msg.position_y = enterArea.position.y; p_msg.position_z = enterArea.position.z; p_msg.direction_x = enterArea.direction.x; p_msg.direction_y = enterArea.direction.y; p_msg.direction_z = enterArea.direction.z; p_msg.rotation_x = enterArea.rotation.x; p_msg.rotation_y = enterArea.rotation.y; p_msg.msg_type = enterArea.msg_type; p_msg.player_id = enterArea.player_id; p_msg.area_id = enterArea.area_id; p_msg_list.Add(p_msg); } if (msg.msg_type == (int)RequestType.INPUT) { InputMessage input = msg as InputMessage; p_AllMsg.p_InputMessage p_msg = new p_AllMsg.p_InputMessage(); p_msg.id = input.id; p_msg.moving_x = input.moving.x; p_msg.moving_y = input.moving.y; p_msg.moving_z = input.moving.z; p_msg.msg_type = input.msg_type; p_msg.player_id = input.player_id; p_msg.area_id = input.area_id; p_msg_list.Add(p_msg); } if (msg.msg_type == (int)RequestType.LEAVEAREA) { LeaveAreaMessage leaveArea = msg as LeaveAreaMessage; p_AllMsg.p_LeaveAreaMessage p_msg = new p_AllMsg.p_LeaveAreaMessage(); p_msg.id = leaveArea.id; p_msg.msg_type = leaveArea.msg_type; p_msg.player_id = leaveArea.player_id; p_msg.area_id = leaveArea.area_id; p_msg_list.Add(p_msg); } if (msg.msg_type == (int)RequestType.ROTATE) { RotateMessage rotate = msg as RotateMessage; p_AllMsg.p_RotateMessage p_msg = new p_AllMsg.p_RotateMessage(); p_msg.id = rotate.id; p_msg.delta_x = rotate.delta.x; p_msg.delta_y = rotate.delta.y; p_msg.msg_type = rotate.msg_type; p_msg.player_id = rotate.player_id; p_msg.area_id = rotate.area_id; p_msg_list.Add(p_msg); } if (msg.msg_type == (int)RequestType.SPAWN) { SpawnMessage spawn = msg as SpawnMessage; p_AllMsg.p_SpawnMessage p_msg = new p_AllMsg.p_SpawnMessage(); p_msg.id = spawn.id; p_msg.position_x = spawn.position.x; p_msg.position_y = spawn.position.y; p_msg.position_z = spawn.position.z; p_msg.msg_type = spawn.msg_type; p_msg.player_id = spawn.player_id; p_msg.area_id = spawn.area_id; p_msg_list.Add(p_msg); } if (msg.msg_type == (int)RequestType.SHOOT) { ShootMessage shoot = msg as ShootMessage; p_AllMsg.p_ShootMessage p_msg = new p_AllMsg.p_ShootMessage(); p_msg.direction_x = shoot.direction_x; p_msg.direction_y = shoot.direction_y; p_msg.direction_z = shoot.direction_z; p_msg.origin_x = shoot.origin_x; p_msg.origin_y = shoot.origin_y; p_msg.origin_z = shoot.origin_z; p_msg.player_id = shoot.player_id; p_msg.msg_type = shoot.msg_type; p_msg_list.Add(p_msg); } } return(p_msg_list); }
/// <summary> /// Login the User in The System /// </summary> /// <remarks> /// Order: /// String UserID /// </remarks> /// <param name="message"> Message To Handle </param> private void LoginRequest(InputMessage message) { string userID = message.Reader.ReadString(); string tokenID; string loginMessage; bool success = GameServer.UserManager.ConnectUser(userID, message.ConnectionId, message.HostId, message.ReceivedTime, out tokenID, out loginMessage); LoginResponse(message.ConnectionId, success, tokenID, loginMessage); Debug.Log(loginMessage); }
public void ProcessMessage(InputMessage message) { if (message.InputType != InputMessage.InputTypes.TwoFingerDrag) { return; } if (message.MessageType == InputMessage.MessageTypes.Begin) { if (_pitchDegrees < _minAngle) { _raycast.Invalidate(); // TODO: Less ugly way to determine this Vector3 angles = Vector3.Scale(Quaternion.LookRotation(_targetCamera.transform.forward).eulerAngles - new Vector3(0f, 180f, 0f), new Vector3(-1f, 1f, 1f)); _pitchDegrees = angles.x; _aroundDegrees = angles.y; } } Vector2 fingerDelta = message.FingerDeltas[0]; //Debug.Log(string.Format("mag: {0}, didHit: {1}", _input.Delta.magnitude, _raycast.DidHit)); if (fingerDelta.magnitude > _startThreshold) { _inputDelta = Vector2.ClampMagnitude(fingerDelta, _deltaClamp); } if (_inputDelta.magnitude > _startThreshold) { TransformClone t = TransformClone.FromTransform(_targetCamera.transform); _aroundDegrees += _inputDelta.x; _pitchDegrees += _inputDelta.y; _inputDelta *= _dampingFactor; if (_pitchDegrees < _minAngle) { return; } Vector3 pivot = _raycast.HitPoint + (Vector3.up * _tiltUpFactor * (_pitchDegrees - _minAngle)); float radius = Vector3.Distance(t.Position, _raycast.HitPoint); Vector3 currentPos = t.Position; Vector3 newPos = Quaternion.Euler(_minAngle, _aroundDegrees, 0) * (radius * Vector3.forward) + _raycast.HitPoint; _deltaPos = newPos - currentPos; Quaternion currentRot = t.Rotation; Quaternion newRot = Quaternion.LookRotation(pivot - newPos); _deltaRot = newRot * Quaternion.Inverse(currentRot); _pendingUpdate = true; message.Use(); return; } }
public void ProcessMessage(InputMessage message) { bool usingInput = false; if (message.InputType == InputMessage.InputTypes.TwoFingerDrag) { usingInput = true; if (message.MessageType == InputMessage.MessageTypes.Begin) { if (_pitchDegrees < _maxAngle) { _raycast.Invalidate(); // TODO: Less ugly way to determine this Vector3 angles = Vector3.Scale(Quaternion.LookRotation(_targetCamera.transform.forward).eulerAngles - new Vector3(0f, 180f, 0f), new Vector3(-1f, 1f, 1f)); _pitchDegrees = angles.x; _aroundDegrees = angles.y; } } if (message.MessageType == InputMessage.MessageTypes.Update) { Vector2 fingerDelta = message.FingerDeltas[0]; //Debug.Log(string.Format("mag: {0}, didHit: {1}", _input.Delta.magnitude, _raycast.DidHit)); if (fingerDelta.magnitude > _startThreshold && _raycast.DidHit) { _inputDelta = Vector2.ClampMagnitude(fingerDelta, _deltaClamp); message.Use(); } } } }
public void Listen() { bool stopListen = false; ushort messagesReaded = 0; while ((isConnected || isConnecting) && !Disconnect && !stopListen) { messagesReaded++; int recConnectionId; int recChannelId; byte[] recBuffer = new byte[1024]; int bufferSize = 1024; int dataSize; byte error; NetworkReader reader; InputMessage message; NetworkEventType recNetworkEvent; try { recNetworkEvent = NetworkTransport.ReceiveFromHost(SocketId, out recConnectionId, out recChannelId, recBuffer, bufferSize, out dataSize, out error); if (error != (byte)NetworkError.Ok) { Debug.Log("Error [" + (NetworkError)error + "] receiving a Message conID : " + recConnectionId + " | channel : " + recChannelId); } else { switch (recNetworkEvent) { case NetworkEventType.Nothing: stopListen = true; break; case NetworkEventType.ConnectEvent: Debug.Log("LLApiClient Succesfully Connected to " + EndPoint + ":" + Port + " ConnectionId : " + ConnectionId + " SocketId: "+ SocketId); isConnected = true; break; case NetworkEventType.DataEvent: Debug.Log("incoming message event received con: " + recConnectionId + " Size: " + dataSize); reader = new NetworkReader(recBuffer); Subjects subject = (Subjects)reader.ReadUInt16(); message = new InputMessage(recConnectionId, SocketId, recChannelId, subject, reader, GameClient.getClientTime()); addMessageToQueue(message); break; case NetworkEventType.DisconnectEvent: Debug.Log("LLApiClient DisConnection"); isConnected = false; break; } } } catch (Exception e) { Debug.LogError("LLApiServer Error Receiving Data : " + e.Message); Debug.LogException(e); } finally { if (messagesReaded >= MaxMessages) { stopListen = true; } } } }
/** * 玩家退出老虎机玩家广播5 * @param playerId 玩家id */ public void GC_SLOT_ROOM5(InputMessage data) { long playerId = data.GetLong(); HumanHandler.Instance().GC_SLOT_ROOM5(playerId); }
public void ProcessMessage(InputMessage message) { }
public HttpStatusCode Action1(InputMessage message) { // perform the action return HttpStatusCode.OK; }
/** * 好友进入游戏通知 * @param friendId 好友ID */ public void GC_FRIEND_GAME(InputMessage data) { long friendId = data.GetLong(); HumanHandler.Instance().GC_FRIEND_GAME(friendId); }
/** * 双倍经验加成 * @param leftTime 双倍经验的剩余时间 */ public void GC_EXP_DOUBLE(InputMessage data) { long leftTime = data.GetLong(); HumanHandler.Instance().GC_EXP_DOUBLE(leftTime); }
private void addMessageToQueue(InputMessage message) { lock (lockPocessObject) { InputMessagesQueue.Enqueue(message); Monitor.PulseAll(lockPocessObject); } }