存储矢量XNA动画

时间:2010-02-06 07:27:01

标签: c# animation xna

当我遇到这个问题时,我正在研究XNA C#,我需要存储易于编辑的动画数据,以便我的游戏能够渲染和播放。

这是这样的:

  

我有一个纹理从(0,0)到(800,600)像素在屏幕上飞过。这将持续5s。

我如何在数据中表示它并编写它,以便游戏能够在DrawUpdate方法中解释并执行必要的操作。如果我需要做一些大量的编码,那就没关系了。

2 个答案:

答案 0 :(得分:1)

一种简单的特定领域语言可以提供帮助;创建一个AnimationDirector类,该类将解释动画脚本中的语句,并在DrawUpdate期间执行相应的工作。 DSL本身可以像

一样简单
texture 0,0; 800,600; 5.0

将在(0,0)创建一个纹理texture的对象,并在5秒内将其移动到(800,600),然后将其销毁。

如果你想要更有用的东西,

create x texture 0,0
over 5.0 move x 800,600
destroy x

可以让您获得更多创意,并扩展动画的可能性(例如,如果您愿意,可以添加旋转等)。

现在,当您需要运行动画时,只需将相应的资源名称传递给导演,然后让它从那里处理。或者,您可以创建一种引用特定脚本的AnimatedEntity,并为DrawUpdate调用AnimationDirector本身;根据你到目前为止的引擎方式,这可能更适合它的设计。

答案 1 :(得分:0)

这是一个快速提示...

纹理的位置可以用数学公式定义,它会在开始时给你(0,0),在五秒后给你(800,600)......