static void Main(string[] args) { Package package = new Package();; package.Code = 123; package.Args = new Regulus.Utility.Map <byte, byte[]>(); var streamData = new System.IO.MemoryStream(); ProtoBuf.Serializer.Serialize <Data>(streamData, new Data() { var1 = "1234567890" }); streamData.Position = 0; var p2 = ProtoBuf.Serializer.Deserialize <Data>(streamData); package.Args.Add(100, streamData.ToArray()); System.IO.MemoryStream streamActionStatue = new System.IO.MemoryStream(); ActionStatue actionStatus = new ActionStatue(); actionStatus = ActionStatue.GangnamStyle; ProtoBuf.Serializer.Serialize <ActionStatue>(streamActionStatue, actionStatus); streamActionStatue.Position = 0; var p1 = ProtoBuf.Serializer.Deserialize <ActionStatue>(streamActionStatue); package.Args.Add(120, streamActionStatue.ToArray()); System.IO.MemoryStream stream = new System.IO.MemoryStream(); ProtoBuf.Serializer.Serialize <Package>(stream, package); stream.Position = 0; var p = ProtoBuf.Serializer.Deserialize <Package>(stream); }
static void Main(string[] args) { Package package = new Package(); ; package.Code = 123; package.Args = new Regulus.Utility.Map<byte, byte[]>(); var streamData = new System.IO.MemoryStream(); ProtoBuf.Serializer.Serialize<Data>(streamData, new Data() { var1 = "1234567890" }); streamData.Position = 0; var p2 = ProtoBuf.Serializer.Deserialize<Data>(streamData); package.Args.Add(100, streamData.ToArray()); System.IO.MemoryStream streamActionStatue = new System.IO.MemoryStream(); ActionStatue actionStatus = new ActionStatue(); actionStatus = ActionStatue.GangnamStyle; ProtoBuf.Serializer.Serialize<ActionStatue>(streamActionStatue, actionStatus); streamActionStatue.Position = 0; var p1 = ProtoBuf.Serializer.Deserialize<ActionStatue>(streamActionStatue); package.Args.Add(120, streamActionStatue.ToArray()); System.IO.MemoryStream stream = new System.IO.MemoryStream(); ProtoBuf.Serializer.Serialize<Package>(stream, package); stream.Position = 0; var p = ProtoBuf.Serializer.Deserialize<Package>(stream); }
void IPlayer.BodyMovements(ActionStatue action_statue) { var mover = FindAbility<IMoverAbility>(); if (mover != null) { mover.Act(action_statue, 0, 0); } }
void IPlayer.BodyMovements(ActionStatue action_statue) { var mover = FindAbility<IMoverAbility>(); if (mover != null) { mover.Act(new Serializable.ActionCommand() { Command = action_statue, Turn = true }); } }
void _OnAction(long begin_time, float move_speed,float direction, Regulus.Types.Vector2 unit_vector, ActionStatue action_state) { _Property.Direction = direction; Serializable.MoveInfomation mi = new Serializable.MoveInfomation(); mi.ActionStatue = action_state; mi.MoveDirectionAngle = direction; CurrentAction = action_state; mi.BeginPosition = _Property.Position; mi.BeginTime = begin_time; mi.MoveDirection = unit_vector; mi.Speed = move_speed; if (ShowActionEvent != null) ShowActionEvent(mi); }
private bool _CanSwitch(ActionStatue _CurrentAction, ActionStatue action_statue) { // TODO �ʰ��ݬO�_�i���� return true; }
void _Act(ActionStatue action_statue, float move_speed, float direction /* ��V���� 0~360 */) { if (_CanSwitch(_CurrentAction, action_statue)) { // ���⭱��@�ɪ���V _Direction = (direction + _Direction) % 360; _CurrentAction = action_statue; _MoveSpeed = move_speed; var t = (float)((_Direction - 180) * Math.PI / 180); // ���ʦV�q //_UnitVector = new Types.Vector2() { X = (float)Math.Cos(t), Y = (float)Math.Sin(t) }; _UnitVector = new CustomType.Vector2() { X = -(float)Math.Sin(t), Y = -(float)Math.Cos(t) }; _Update = _First; } }
void IMoverAbility.Act(ActionStatue action_statue, float move_speed, float direction /* ��V���� 0~360 */) { _Act(action_statue, move_speed, direction); }
void IMoverAbility.Act(ActionStatue action_statue, float move_speed, float direction) { }
private void _Act(Serializable.ActionCommand action_command) { // 角色面對世界的方向 var moveDirection = 0.0f; if (action_command.Absolutely == false) moveDirection = (action_command.Direction + _Direction) % 360; else moveDirection = action_command.Direction % 360; if (action_command.Turn) { _Direction = moveDirection; } _CurrentAction = action_command.Command; _MoveSpeed = action_command.Speed; // 移動向量 var t = (float)((moveDirection - 180) * Math.PI / 180); var unitVector = new CustomType.Vector2() { X = -(float)Math.Sin(t), Y = -(float)Math.Cos(t) }; _UnitVector = unitVector; _Update = _First; if (_PrevTime < action_command.Time) _PrevTime = action_command.Time; }