当前位置: 首页>>代码示例>>C#>>正文


C# FSM.Update方法代码示例

本文整理汇总了C#中FSM.Update方法的典型用法代码示例。如果您正苦于以下问题:C# FSM.Update方法的具体用法?C# FSM.Update怎么用?C# FSM.Update使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在FSM的用法示例。


在下文中一共展示了FSM.Update方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: DummyFsmUpdate

	static void DummyFsmUpdate(FSM fsm)
	{
		//const int updatePerMs = (int)(1f / 60f * 1000);
		const int updatePerMs = (int)(1000);
		
		bool speedAdding = true;
		bool gravityAdding = false;
		bool hpAdding = false;
		
		int perNumGravityEnabled = 5;
		int gravityNum = 0;
		
		//		var task = Task.Factory.StartNew((Action)(() =>
		
//		while (true)
//		{
			fsm.Update();
			
			var speed = fsm.GetParamValue<int>(P_SPEED);
			var hp = fsm.GetParamValue<int>(P_HP);
			var gravity = fsm.GetParamValue<int>(P_GRAVITY);
			
			if (hp <= -5) hpAdding = true;
			else if (hp > 100) hpAdding = false;
			hp += (hpAdding ? 4 : -4);
			
			fsm.SetParamValue(P_HP, hp); // minus 10 hp per frame, to dead when hp less and equals 0
			
			if (hp > 0) // is alive, then to do somthing...
			{
				if (speed <= 0) speedAdding = true;
				else if (speed > 20) speedAdding = false;
				fsm.SetParamValue(P_SPEED, (speed + (speedAdding ? 1 : -1))); // to run when speed greater and equals 10, back to idle when speed less than 10
				
				if (gravity <= -10) gravityAdding = true;
				else if (gravity > 10)  gravityAdding = false;
				fsm.SetParamValue(P_GRAVITY, (gravity + (gravityAdding ? 1 : -1))); // to fly when gravity less and equals 0
				
				gravityNum += 1;
				if (gravityNum % perNumGravityEnabled == 0)
				{
					fsm.SetParamValue(P_GRAVITY_ENABLED, !fsm.GetParamValue<bool>(P_GRAVITY_ENABLED));
				}
			}
//			Thread.Sleep(updatePerMs);
//		}
	}
开发者ID:TrojanFighter,项目名称:U3D-DesignerBehaviorTest1,代码行数:47,代码来源:TestFSM.cs


注:本文中的FSM.Update方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。