public static Dictionary<int, QNode> BuildQNodeMap(CMap _map, Dictionary<int, CAnimationObject> _listObject) { Dictionary<int, QNode> mapNode = new Dictionary<int, QNode>(); foreach (KeyValuePair<int, CNode> pair in _map.Map) { QNode node = null; List<CAnimationObject> list = new List<CAnimationObject>(); Rectangle _bound = new Rectangle(pair.Value.X, pair.Value.Y, pair.Value.Width, pair.Value.Height); node = new QNode(pair.Key, _bound); for (int i = 0; i < pair.Value.ListObject.Count; ++i) { foreach (KeyValuePair<int, CAnimationObject> o in _listObject) { if (pair.Value.ListObject[i].ID == o.Key) { list.Add(o.Value); } } } node.InsertObjects(list); mapNode.Add(pair.Key, node); } return mapNode; }
public static Dictionary<int, CAnimationObject> BuildObjectInMap(CMap _map) { Dictionary<int, CAnimationObject> listObject = new Dictionary<int, CAnimationObject>(); foreach (KeyValuePair<int, CGameObject> pair in _map.ListObjects) { CAnimationObject _object = null; Vector2 _pos = new Vector2(pair.Value.X, pair.Value.Y); IDObject _type = (IDObject)pair.Value.Type; _object = Build.MakeObject(_type, _pos); if (_object != null) { listObject.Add(pair.Key, _object); } } // gán coin vào break_question foreach (KeyValuePair<int, CAnimationObject> pair in listObject) { if (pair.Value.IDObject == IDObject.MISC_QUESTION_BRICK) { foreach (KeyValuePair<int, CAnimationObject> p in listObject) { if (pair.Value.Position == p.Value.Position && (p.Value.IDObject == IDObject.ITEM_COIN_ACTIVATED || p.Value.IDObject == IDObject.ITEM_FIRE_FLOWER || p.Value.IDObject == IDObject.ITEM_SUPER_MUSHROOM || p.Value.IDObject == IDObject.ITEM_1UP_MUSHROOM || p.Value.IDObject == IDObject.ITEM_STARMAN || p.Value.IDObject == IDObject.ITEM_GROW_UP)) { pair.Value.SetItem(p.Value); } } } } return listObject; }