查看: 1739|回复: 8

求教:Animation的问题

[复制链接]

该用户从未签到

发表于 2010-11-18 22:08:57 | 显示全部楼层 |阅读模式
我有2个.osg文件, 都是从用osgexp导出的动画文件,第一个是手臂抓取物体的动画,第二个是手臂抓完物体的抬起的动画。 键盘触发事件以后,就可以做抓起和抬起的动作。现在的 问题是,如果在抓起的动作未完成就触发键盘事件,那个抬起动作的动画马上就触发,两个文件相互switch. 简单地说我不知道怎么知道动画运行完毕了没,或者动画运行到哪一个时间点

该用户从未签到

发表于 2010-11-19 08:29:23 | 显示全部楼层
如果您用的是AnimationPathCallback,那么可以随时用getAnimationTime()获取当前动画运行的时间点

该用户从未签到

发表于 2010-11-24 07:08:23 | 显示全部楼层
我也遇到同样的问题。那么getAnimationTime()在那里使用更为合理呢? GUIEventHandler的帧事件,还是自身的回调

该用户从未签到

发表于 2010-11-24 08:37:04 | 显示全部楼层
没有什么特别的限制

该用户从未签到

 楼主| 发表于 2010-11-25 19:06:39 | 显示全部楼层
已经解决了,谢谢
原来用setPause以后动画还没开始的时候,getAnimationTime()得到的时间不是0,开始了就好了

该用户从未签到

发表于 2010-11-25 20:14:20 | 显示全部楼层
原来用setPause以后动画还没开始的时候


你的意思是在动画开始之前就用了setPause,还是用了setPause使动画暂停?


getAnimationTime()得到的时间不是0,开始了就好了


你的意思是说暂停的时候得到的是非零,而开始就变成零了吗?

完全没看懂。

该用户从未签到

 楼主| 发表于 2010-11-26 01:04:32 | 显示全部楼层
你的意思是在动画开始之前就用了setPause,还是用了setPause使动画暂停?



你的意思是说暂停的时候得到的是非零,而开始就变成零了吗?

完全没看懂。
aaa696 发表于 2010-11-25 20:14


我在初始化的时候用了setPause,也就是把所有的动画都调到最前面,不播放,直接setPause,getAnimationTime()得到的是一个无穷小的数,也就是动画没播放,那个animationtime没被负植吧,然后动画开始了以后,我是在键盘事件里面输出每一个时间的,然后设置成getAnimationTime>getTimeMultiplier()的时候可以播放下个动画,就是说时间大于这个动画的总长后就可以触发键盘事件播放下一个动画

该用户从未签到

发表于 2010-11-26 11:33:27 | 显示全部楼层
mark参考

该用户从未签到

发表于 2012-3-13 10:55:28 | 显示全部楼层
学习一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表