private static void ProcessFrameItems(XmlNodeList itemNodes, PPKeyFrameInfo keyFrameInfo, Dictionary <int, PPAnimNodeInfo> animNodeInfos) { for (int i = 0; i < itemNodes.Count; i++) { XmlNode xmlNode = itemNodes[i]; PPFrameItemInfo frameItemInfo = new PPFrameItemInfo(); XmlNode iniInfoNode = xmlNode.SelectSingleNode("init"); iniInfoNode.GetPosInfo(out frameItemInfo.initPos) .GetAngleInfo(out frameItemInfo.initAngle); frameItemInfo.index = i; frameItemInfo.targetId = int.Parse(xmlNode.Attributes["targetid"].Value); //根据targetId去处理 XmlAttribute isunit = xmlNode.Attributes["isunit"]; if (null == isunit) { frameItemInfo.IsUnit = animNodeInfos[frameItemInfo.targetId].Type == NodeType.Block; } else { frameItemInfo.IsUnit = !isunit.Value.Equals("0"); } frameItemInfo.ParseMovements(xmlNode.SelectNodes("movement")); keyFrameInfo.AddFrameItemInfo(frameItemInfo); } }
public virtual void Init(PPFrameItemInfo itemInfo, GameObject target) { mInfo = itemInfo; mTarget = target; mDirNotChange = true; mPosNotChange = true; foreach (PPMovementInfo movement in mInfo.movements) { if (movement.type == PPMovementType.Normal) { if (mInfo.initAngle != movement.destAngle) { mDirNotChange = false; } if (mInfo.initPos != movement.destPosition) { mPosNotChange = false; } } } mHasNormalMove = mHasSplineMove = false; mNormalMoves.Clear(); mSplineMoves.Clear(); foreach (PPMovementInfo movement in mInfo.movements) { if (movement.type == PPMovementType.Normal) { mHasNormalMove = true; mNormalMoves.Add(movement); } else if (movement.type == PPMovementType.Spline) { mHasSplineMove = true; mSplineMoves.Add(movement); } } }
public void AddFrameItemInfo(PPFrameItemInfo itemInfo) { itemInfos.Add(itemInfo); }