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; } }
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); }