2012-12-15 4 views
-2

XNA 애니메이션을 일시 중지하는 방법을 모르겠습니다. 내 모델의 애니메이션을 "시작"할 수는 있지만 멈추지는 않습니다. SkinningSample_4_0 샘플 dll을 사용합니다XNA에서 모델 애니메이션을 어떻게 정지합니까?

다음은 사용할 내 코드입니다.

protected override void LoadContent() 
     { 
      //Model - Player 
      model_player = Content.Load<Model>("Models\\Player\\models"); 
      // Look up our custom skinning information. 
      SkinningData skinningData = model_player.Tag as SkinningData; 

      if (skinningData == null) 
       throw new InvalidOperationException 
        ("This model does not contain a SkinningData tag."); 

      // Create an animation player, and start decoding an animation clip. 
      animationPlayer = new AnimationPlayer(skinningData); 

      AnimationClip clip = skinningData.AnimationClips["ArmLowAction_006"]; 

      animationPlayer.StartClip(clip); 

} 

protected overide update(GameTime gameTime) 
{ 
      KeyboardState key = Keyboard.GetState(); 
      animationPlayer.Update(gameTime.ElapsedGameTime, true, Matrix.Identity); 
      // If player don't move -> stop anim 
      if (!key.IsKeyDown(Keys.W) && !keyStateOld.IsKeyUp(Keys.S) &&   !keyStateOld.IsKeyUp(Keys.A) && !keyStateOld.IsKeyUp(Keys.D)) 
      { 
       //animation stop ? not exist ? 
       animationPlayer.Stop(); 
       isPlayerStop = true; 
      } 
      else 
      { 
       if(isPlayerStop == true) 
       { 
        isPlayerStop = false; 
        animationPlayer.StartClip(Clip); 
      } 
} 
+0

미안 나는 응답을 수동으로 –

+1

미안하지만이 질문은 정말 불분명를 얻을 수 있습니다. – neeKo

+0

죄송합니다. 내 문제에 대한 설명을 편집합니다. 나는 그것을 더 짧고 더 나은 결과로 만들려고 노력했다. 나는 기본적인 영어를 말하지 않는다. –

답변

0

나는 마침내 자신에 의해 발견 ^^

if (!key.IsKeyDown(Keys.W) && !key.IsKeyDown(Keys.A) && !key.IsKeyDown(Keys.D) && !key.IsKeyDown(Keys.S)) 
{ 
      //Stop animation for player walking 
      animationPlayer.Update(new TimeSpan(0, 0, 0), true, Matrix.Identity); 
} 
else 
{ 
      //Continue the animation 
      animationPlayer.Update(gameTime.ElapsedGameTime, true, Matrix.Identity); 
} 
관련 문제