public frmMinerDemo() { InitializeComponent(); mHighResTimer = new HighResTimer(); // m_AsyncWorker will be used to perform the AI work on a background thread. m_AsyncWorker = new BackgroundWorker(); m_AsyncWorker.WorkerReportsProgress = true; m_AsyncWorker.ProgressChanged += new ProgressChangedEventHandler(Thread_ProgressChanged); m_AsyncWorker.DoWork += new DoWorkEventHandler(Thread_DoWork); m_AsyncWorker.WorkerSupportsCancellation = true; // Just direct all debug output to our Message Writer Debug.Listeners.Clear(); Debug.Listeners.Add(new TextWriterTraceListener(DebugMessages.Instance)); groupBox1.ForeColor = mColourBob; groupBox2.ForeColor = mColourElsa; groupBox3.ForeColor = mColourBarFly; //create a miner Bob = new Miner((int)EntityName.ent_Miner_Bob); //create his wife Elsa = new MinersWife((int)EntityName.ent_Elsa); Joe = new BarFlyJoe((int)EntityName.ent_BarFly); //register them with the Message Dispatcher MessageDispatcher.Instance.RegisterEntity(Bob); MessageDispatcher.Instance.RegisterEntity(Elsa); MessageDispatcher.Instance.RegisterEntity(Joe); }
public frmSteeringDemo() { InitializeComponent(); mFont = new Font("Arial", 10); mHighResTimer = new HighResTimer(); mFormsTimer = new System.Windows.Forms.Timer(); mFormsTimer.Interval = 30; // 100 milliseconds is a tenth of a second mFormsTimer.Tick += new System.EventHandler(this.TimerEventProcessor); pnlViewPort.MouseClick += new MouseEventHandler(On_pnlViewPort_Click); pnlViewPort.SizeChanged += new EventHandler(On_pnlViewPort_Size); cmboChaseMode.SelectedIndex = 0; chkWalls.CheckedChanged += new EventHandler(chkWalls_CheckedChanged); chkObstacles.CheckedChanged += new EventHandler(chkObstacles_CheckedChanged); chkRenderAides.CheckedChanged += new EventHandler(chkRenderAides_CheckedChanged); chkSpacePart.CheckedChanged += new EventHandler(chkSpacePart_CheckedChanged); chkPenetrate.CheckedChanged += new EventHandler(chkPenetrate_CheckedChanged); cmboChaseMode.SelectedIndexChanged +=new EventHandler(cmboChaseMode_SelectedIndexChanged); cmboSamples.SelectedIndexChanged += new EventHandler(cmboSamples_SelectedIndexChanged); cmboUpdate.SelectedIndexChanged +=new EventHandler(cmboUpdate_SelectedIndexChanged); spinMaxForce.ValueChanged += new EventHandler(spinMaxForce_ValueChanged); spinMaxSpeed.ValueChanged += new EventHandler(spinMaxSpeed_ValueChanged); spinAlignment.ValueChanged += new EventHandler(spinAlignment_ValueChanged); spinCohesion.ValueChanged += new EventHandler(spinCohesion_ValueChanged); spinSeparation.ValueChanged += new EventHandler(spinSeparation_ValueChanged); }
public void CreateSearchPath(algorithm_type Algo) { //set current algorithm m_CurrentAlgorithm = Algo; //clear any existing path m_Path.Clear(); m_SubTree.Clear(); if (m_CurrentAlgorithm == algorithm_type.none) return; //create and start a timer HighResTimer tempTimer = new HighResTimer(); tempTimer.Start(); BaseGraphSearchAlgo SearchAlgo = null; //do the search switch (m_CurrentAlgorithm) { case algorithm_type.search_dfs: SearchAlgo = new Graph_SearchDFS(m_Graph, m_iSourceCell, m_iTargetCell); break; case algorithm_type.search_bfs: SearchAlgo = new Graph_SearchBFS(m_Graph, m_iSourceCell, m_iTargetCell); break; case algorithm_type.search_dijkstra: SearchAlgo = new Graph_SearchDijkstra(m_Graph, m_iSourceCell, m_iTargetCell); break; case algorithm_type.search_astar: SearchAlgo = new Graph_SearchAStar(m_Graph, m_iSourceCell, m_iTargetCell, EuclidianDistance); break; default: throw new Exception("<PathFinder::CreateSearchPath>: algorithm_type does not exist"); } tempTimer.Stop(); //record the time taken m_dTimeTaken = tempTimer.RunningTime; if (SearchAlgo != null) { //now grab the path (if one has been found) if (SearchAlgo.Found()) { m_Path = SearchAlgo.GetPathToTarget(); } m_SubTree = SearchAlgo.GetSearchTree(); m_dCostToTarget = SearchAlgo.GetCostToTarget(); } }