Пример #1
0
        public static void Execute(InputCmd cmd, IEntity sentity)
        {
            if (cmd.content == null)
            {
                return;
            }
            var entity = sentity as InputEntity;

            var type = cmd.content[0];

            if (EnumBitUtil.HasBit(type, EInputCmdType.Up))
            {
                entity.AddMoveDir(EDir.Up);
            }
            if (EnumBitUtil.HasBit(type, EInputCmdType.Left))
            {
                entity.AddMoveDir(EDir.Left);
            }
            if (EnumBitUtil.HasBit(type, EInputCmdType.Down))
            {
                entity.AddMoveDir(EDir.Down);
            }
            if (EnumBitUtil.HasBit(type, EInputCmdType.Right))
            {
                entity.AddMoveDir(EDir.Right);
            }
            if (EnumBitUtil.HasBit(type, EInputCmdType.Fire))
            {
                entity.isFire = true;
            }
        }
Пример #2
0
        public List <InputCmd> GetInputCmds()
        {
            var cmds   = new List <InputCmd>();
            var isFire = UnityEngine.Input.GetKey(KeyCode.Space);
            var dir    = EInputCmdType.Up;

            if (UnityEngine.Input.GetKey(KeyCode.W))
            {
                dir = EInputCmdType.Up;
            }
            else if (UnityEngine.Input.GetKey(KeyCode.D))
            {
                dir = EInputCmdType.Right;
            }
            else if (UnityEngine.Input.GetKey(KeyCode.S))
            {
                dir = EInputCmdType.Down;
            }
            else if (UnityEngine.Input.GetKey(KeyCode.A))
            {
                dir = EInputCmdType.Left;
            }
            else
            {
                dir = EInputCmdType.Fire;
            }

            if (dir != EInputCmdType.Fire)
            {
                cmds.Add(new InputCmd(EnumBitUtil.ToByte(dir)));
            }

            if (isFire)
            {
                cmds.Add(new InputCmd(EnumBitUtil.ToByte(EInputCmdType.Fire)));
            }

            return(cmds);
        }