public IHttpActionResult Put(int id, ETransition eTransition) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != eTransition.transition_id) { return(BadRequest()); } db.Entry(eTransition).State = EntityState.Modified; try { db.SaveChanges(); } catch (DbUpdateConcurrencyException) { if (!ETransitionExists(id)) { return(NotFound()); } else { throw; } } return(StatusCode(HttpStatusCode.NoContent)); }
public IHttpActionResult Get(int id) { ETransition eTransition = db.ETransitions.Find(id); if (eTransition == null) { return(NotFound()); } return(Ok(eTransition)); }
/// <summary> /// 获取新的状态,如果有状态过渡 /// </summary> /// <param name="transition"></param> /// <returns></returns> public string getOutState(ETransition transition) { if (map.ContainsKey(transition)) { return(map[transition]); } else { return(null); } }
/// <summary> /// 删除条件 /// </summary> /// <param name="transition"></param> public void deleteTransition(ETransition transition) { if (transition == ETransition.NULL) { return; } if (map.ContainsKey(transition)) { map.Remove(transition); } }
protected Dictionary <ETransition, string> map = new Dictionary <ETransition, string>();//装换条件和状态的名字 /// <summary> /// 添加条件 /// </summary> /// <param name="transition"></param> /// <param name="stateName"></param> public void addTransition(ETransition transition, string stateName) { if (transition == ETransition.NULL || string.IsNullOrEmpty(stateName)) { return; } if (!map.ContainsKey(transition)) { map.Add(transition, stateName); } }
public IHttpActionResult Post(ETransition eTransition) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } db.ETransitions.Add(eTransition); db.SaveChanges(); return(CreatedAtRoute("DefaultApi", new { id = eTransition.transition_id }, eTransition)); }
internal void register(object obj, float time, float delay, ETransition transition, IDictionary <string, object> properties, CompletedCallback callback) { _registerInfosInit.Add(new RegisterInfo() { obj = obj, time = time, delay = delay, transition = transition, // startTime = Time.time + delay, properties = properties, callback = callback, }); }
public IHttpActionResult Delete(int id) { ETransition eTransition = db.ETransitions.Find(id); if (eTransition == null) { return(NotFound()); } db.ETransitions.Remove(eTransition); db.SaveChanges(); return(Ok(eTransition)); }
/// <summary> /// 转换状态 /// </summary> /// <param name="transition">条件</param> public void doTransition(ETransition transition) { if (transition == ETransition.NULL) { return; } string newStateName = curState.getOutState(transition);//获取当前状态要装换到的下一个状态名字 if (string.IsNullOrEmpty(newStateName)) { return; } //转换状态 for (int i = 0; i < listState.Count; i++) { if (newStateName.Equals(listState[i].Name)) { curState.doBeforeLeaving(); //当前状态离开时候要做的事情 curState = listState[i]; //更换当前状态 curState.doBeforeEntering(); //进入当前状态做的事情 break; } } }
public void updateProperties(GameTime gameTime, IDictionary <string, object> properties, double duration, ETransition transition) { double startTime = gameTime.TotalGameTime.TotalSeconds; double endTime = startTime + duration; foreach (KeyValuePair <string, object> item in properties) { string name = item.Key; IProperty property = null; System.Reflection.PropertyInfo proInfo = obj.GetType().GetProperty(name); if (proInfo != null) { property = new PropertyProperty() { property = proInfo }; } if (property == null) { System.Reflection.FieldInfo fieldInfo = obj.GetType().GetField(name); if (fieldInfo != null) { property = new FieldProperty() { field = fieldInfo }; } } if (property == null) { continue; } Type proType = property.getType(); IChangeSet changeSet = null; TransitionCall transCall = EaseUtils.easeLinear; switch (transition) { case ETransition.EaseInElastic: transCall = EaseUtils.easeInElastic; break; case ETransition.EaseOutElastic: transCall = EaseUtils.easeOutElastic; break; case ETransition.EaseInOutElastic: transCall = EaseUtils.easeInOutElastic; break; case ETransition.EaseInCubic: transCall = EaseUtils.easeInCubic; break; case ETransition.EaseOutCubic: transCall = EaseUtils.easeOutCubic; break; case ETransition.Linear: transCall = EaseUtils.easeLinear; break; } if (proType == typeof(float)) { float beginValue = (float)(property.getValue(obj, null)); float gotoValue = float.Parse(item.Value.ToString()); float changeValue = gotoValue - beginValue; FloatSet floatSet = new FloatSet(transCall) { name = name, beginValue = beginValue, changeValue = changeValue, startTime = startTime, endTime = endTime, duration = duration, property = property, }; changeSet = floatSet; } else if (proType == typeof(int)) { int beginValue = (int)(property.getValue(obj, null)); int gotoValue = int.Parse(item.Value.ToString()); int changeValue = gotoValue - beginValue; changeSet = new IntSet(transCall) { name = name, beginValue = beginValue, changeValue = changeValue, startTime = startTime, endTime = endTime, duration = duration, property = property, }; } if (changeSet != null) { if (!_names.Contains(name)) { _names.Add(name); } _changeSets[name] = changeSet; } } }
public static void add(object obj, float time, float delay, ETransition transition, IDictionary <string, object> properties, CompletedCallback callback = null) { Tweener.get().register(obj, time, delay, transition, properties, callback); }