游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3107|回复: 6

怎么解决关于directx的动画重复?

[复制链接]

2

主题

25

帖子

25

积分

注册会员

Rank: 2

积分
25
发表于 2011-8-16 08:21:00 | 显示全部楼层 |阅读模式
我加载.X文件中的动画后,发现动画一直是重复的,如何让动画只播放一次,还有如何判断动画播放完了?求高手帮帮忙啊? [em17]

9

主题

62

帖子

62

积分

注册会员

Rank: 2

积分
62
发表于 2011-8-16 10:16:00 | 显示全部楼层

Re:怎么解决关于directx的动画重复?

可以用事件通知,也可以在循环中利用(当前播放时间>=播放周期*播放速度)来判断是否播放完成

2

主题

25

帖子

25

积分

注册会员

Rank: 2

积分
25
 楼主| 发表于 2011-8-16 11:08:00 | 显示全部楼层

Re:怎么解决关于directx的动画重复?

楼上的大师,请问判段播放完成了,用什么函数之类的让他停止呢?那个事件通知的方法具体怎么实现呢?

9

主题

62

帖子

62

积分

注册会员

Rank: 2

积分
62
发表于 2011-8-16 12:39:00 | 显示全部楼层

Re:怎么解决关于directx的动画重复?

如果知道动画是怎么进行的,就应该知道怎么去停止.
事件通知的话,你需要创建相应的事件,绑定事件,并创建一个侦听线程去响应这些事件.

4

主题

137

帖子

311

积分

中级会员

Rank: 3Rank: 3

积分
311
发表于 2011-8-27 08:33:00 | 显示全部楼层

Re:怎么解决关于directx的动画重复?

.x控制的demo很多 多看几个就知道了

2

主题

25

帖子

25

积分

注册会员

Rank: 2

积分
25
 楼主| 发表于 2012-2-2 15:26:00 | 显示全部楼层

Re:怎么解决关于directx的动画重复?

我发现不能用无心大师的(当前播放时间>=播放周期*播放速度)来判断是否播放完成。
我觉得判断动画是否完成,不能用当前播放时间,而是要数当前播放到第几帧。我觉得每个人的电脑播放时间不一样,很容易产生误差。

33

主题

159

帖子

272

积分

中级会员

Rank: 3Rank: 3

积分
272
QQ
发表于 2012-2-8 22:01:00 | 显示全部楼层

Re:怎么解决关于directx的动画重复?

LPD3DXANIMATIONSET pSet;
......
double dtemp =pSet->GetPeriod();//取当前动画集的时长
pSet->GetPeriodicPosition(_dTimeAnim);//取得现在运行本集动画中的时间点

再怎么搞就随你咯,应该能看懂了吧
(去年我搞骨骼动画的时候怎么就没人告诉我来着,NN的看了两天D3DX文档才找到的)
       
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-6-9 11:12

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表