2010-02-06 4 views
2

내 게임에서 렌더링하고 재생할 수 있도록 쉽게 편집 가능한 애니메이션 데이터를 저장해야하는이 문제가 발생하면 XNA C#에서 작업하고 있습니다. 나는 (800600) 픽셀에 질감 (0,0)에서 화면을 가로 질러 비행이벡터 XNA 애니메이션 저장

:

그것은이 같은입니다. 이것은 5 초 동안 지속됩니다.

는 어떻게 데이터를 대표하고 또한 그러한 게임이 해석하고 DrawUpdate 방법에 필요한 작업을 수행 할 수 있음을 쓰기 않습니다. 광범위한 코딩을해야한다면 괜찮습니다.

+0

애니메이션을 XML로 저장하면 콘텐츠 파이프 라인을 통해로드 할 수 있습니다 – Martin

+0

XML에서 다른 애니메이션과 장면 전환을 많이 정의 할 수 없습니까? – mauris

+0

@Martin : 프로젝트가 일반 PC가 아닌 다른 플랫폼에서 작동하는 경우 스크립팅 된 애니메이션은 XML로 작성되었는지 여부에 상관없이 컨텐츠 파이프 라인을 통과해야합니다. 애니메이션 구조에 XML 사용 DSL은 일반 텍스트보다 이점이 없습니다. –

답변

1

간단한 도메인 관련 언어가 도움이 될 수 있습니다. 애니메이션 스크립트의 문장을 해석하고 DrawUpdate 동안 적절한 작업을 수행하는 AnimationDirector 클래스를 만듭니다. DSL 자체가 될 수 간단 (0,0)에서 텍스처 texture와 객체를 생성하고 5 초 동안 (800600)로 이동 한 다음 그것을 파괴

texture 0,0; 800,600; 5.0 

한다.

당신이 뭔가 좀 더 유용합니다

, 당신은 더 창의적하자, 그리고 (당신은 원하는 경우 등 추가 회전, 등) 애니메이션의 가능성을 확대 할
create x texture 0,0 
over 5.0 move x 800,600 
destroy x 

.

이제 애니메이션을 실행해야하는 경우 감독에게 적절한 리소스 이름을 전달하고 거기에서 물건을 처리하도록하십시오. 또는 특정 스크립트를 참조하는 일종의 AnimatedEntity를 만들 수 있으며 DrawUpdate에 대한 AnimationDirector 자체를 호출 할 수 있습니다. 지금까지 엔진을 어떻게 사용해 왔는지에 따라 디자인에 더 적합 할 수도 있습니다.

0

다음은 텍스처의

위치는 시작 시간에 당신에게 (0,0)을 줄 것이라고 수학 공식에 의해 정의되고 (800600) 오초 나중에 할 수 있습니다 ... 빠른 힌트입니다. ..

+0

나는 그것을 수학 공식으로 정의하는 법을 안다. 그러나 저장된 데이터는 쉽게 편집 할 수 있어야합니다 (즉, 많은 사람들의 생각없이 쉽게 읽을 수 있어야 함). 함께 실행되는 여러 애니메이션이 있어야합니다. – mauris

관련 문제