⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 transitioner.cs

📁 Game Engine Desing Direct X and C#.rar
💻 CS
字号:
using System;
using System.Xml;

namespace GameAI
{
	/// <summary>
	/// Summary description for Transitioner.
	/// </summary>
	public class Transitioner
	{
		#region Attributes
		private Expression m_expression = null;
		private AIState    m_target_state;
		#endregion

		#region Properties
		#endregion

		public Transitioner(Expression expression, AIState target_state)
		{
			m_expression = expression;
			m_target_state = target_state;
		}

		public AIState Evaluate( AIState old_state )
		{
			AIState new_state = old_state;

			if ( m_expression != null )
			{
				if ( m_expression.Evaluate() )
				{
					new_state = m_target_state;
				}
			}

			return new_state;
		}


		public void Write( XmlTextWriter writer )
		{
			writer.WriteStartElement("Transitioner");
			writer.WriteElementString("Target", m_target_state.Name);
			m_expression.Write( writer );
			writer.WriteEndElement();
		}

		public void Read ( XmlTextReader reader, Thinker thinker )
		{
			bool done = false;

			while ( !done ) 
			{
				reader.Read();

				if ( reader.NodeType == XmlNodeType.EndElement &&
					reader.Name == "Transitioner" )
				{
					done =true;
				}
					// Process a start of element node.
				else if (reader.NodeType == XmlNodeType.Element) 
				{ 
					// Process a text node.
					if ( reader.Name == "Expression" ) 
					{
						m_expression.Read( reader, thinker );
					}
				}
			}// End while loop
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -