/// <summary> /// 生成职责处理链 /// </summary> /// <returns>返回处理链的头部</returns> public static MotionSuper CreateHandleChain() { MotionSuper headMotion = null; MotionSuper preMotion = null; MotionSuper nextMotion = null; try { //string[] motionNames = GetMotionNames("config\\motion.ini"); // 获取配置文件中类名集合 Waterstrong //string[] motionNames = { "Jump", "HandLeftSlide"}; MotionSuper[] motionSupers = { new Jump(), new HandsUp(), new HandsFold(), new HandsMiddle(), new HandLeftSlide(), new HandRightSlide(), new HandLeftUp(), new HandRightUp(), new HandLeftCircle(), new HandRightCircle(), new HandLeftDown(), new HandRightDown() }; // Waterstrong Alter int count = 0; //foreach (string name in motionNames) // 设置职责链 foreach (MotionSuper motion in motionSupers) // 设置职责链 // Waterstrong Alter { if (count++ == 0) { //headMotion = GetInstance(name); headMotion = motion;// Waterstrong Alter preMotion = headMotion; } else { //nextMotion = GetInstance(name); nextMotion = motion; // Waterstrong Alter preMotion.SetSuccessor(nextMotion); preMotion = nextMotion; } } } catch (System.Exception ex) { throw new Exception(ex.Message); } return(headMotion); }
/// <summary> /// 设置下一个处理者 /// </summary> /// <param name="successor">后继处理者</param> public void SetSuccessor(MotionSuper successor) { _successor = successor; }
private void win_ges_Loaded(object sender, RoutedEventArgs e) { try { // 创建处理链 _motion = MotionFactory.CreateHandleChain(); } catch (System.Exception ex) { MessageBox.Show(ex.Message); Application.Current.Shutdown(); } KinectStart(); StartColorFrame(); this.txt_filename.Text = ConfigurationSettings.AppSettings["FileName"]; }
private void Window_Loaded(object sender, RoutedEventArgs e) { FullScreen.GoFullscreen(this); image_scene.Source = new BitmapImage(new Uri("/scene/swust0.jpg", UriKind.Relative)); image_left.Source = new BitmapImage(new Uri("/scene/left0.png", UriKind.Relative)); image_right.Source = new BitmapImage(new Uri("/scene/right0.png", UriKind.Relative)); try { // 创建处理链 _motion = MotionFactory.CreateHandleChain(); } catch (System.Exception ex) { MessageBox.Show(ex.Message); this.Close(); //item_exit_Click(sender, e); } _skeSubject.DataBinding += new SkeletonSubject.DataBindingEventHandler(_skeSubject_DataBinding); _timer.Interval = TimeSpan.FromSeconds(0.01); _timer.Tick += new EventHandler(_timer_Tick); _timer2.Interval = TimeSpan.FromSeconds(0.01); _timer2.Tick += new EventHandler(_timer2_Tick); //_timer.Start(); //播放背景音乐 // _backgroundMusic.Open(new Uri(Environment.CurrentDirectory + "\\music\\bm.wma", UriKind.Relative)); // _backgroundMusic.Play(); //播放讲解 _sceneMusic.Open(new Uri(Environment.CurrentDirectory + "\\music\\swust0.wma", UriKind.Relative)); _sceneMusic.Play(); }
protected MotionSuper _successor = null; // 下一个处理者 /// <summary> /// 设置下一个处理者 /// </summary> /// <param name="successor">后继处理者</param> public void SetSuccessor(MotionSuper successor) { _successor = successor; }