游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2150|回复: 4

请教:播放动画一定要手工addTime吗?

[复制链接]

17

主题

737

帖子

743

积分

高级会员

Rank: 4

积分
743
发表于 2008-6-11 09:06:00 | 显示全部楼层 |阅读模式
我按照wiki上的 Intermediate Tutorial 1 做了,但是这只是1个Entity的动画,而且每帧都要手工addTime,如果屏幕上有好多人好多怪的场景,也要这么做吗?Ogre能不能自动运行动画阿?先谢谢了

63

主题

181

帖子

181

积分

注册会员

Rank: 2

积分
181
发表于 2008-6-11 10:33:00 | 显示全部楼层

Re:请教:播放动画一定要手工addTime吗?

放到STL的vector里循环

17

主题

737

帖子

743

积分

高级会员

Rank: 4

积分
743
 楼主| 发表于 2008-6-11 11:38:00 | 显示全部楼层

Re:请教:播放动画一定要手工addTime吗?

也只好这样了。。。

2

主题

108

帖子

116

积分

注册会员

Rank: 2

积分
116
发表于 2008-6-12 23:58:00 | 显示全部楼层

Re:请教:播放动画一定要手工addTime吗?

你可以对Entity再进行一次封装。在这个封装里,自动添加一个FrameListener,自动addTime。
如:
class EntityWrapper : public FrameListener
{
public:
EntityWrapper(Entity *entity)
: m_entity(entity)
{
    // 初始化时就添加侦听器,让其每一帧都要更新这个动画
    Root::getSingleton().addFrameListener(this);
}

virtual ~EntityWrapper()
{
    // 析构就不再更新了
    Root::getSingleton().addFrameListener(this);
}

// 重载FrameListener的帧事件,让其每帧更新
virtual bool frameStarted(const FrameEvent& evt)
{
    m_entity->addTime(evt.timeSinceLastFrame);
}

protected:
// 包装的实体
Entity *m_entity;
}

PS:只是随手敲的代码。只是表明其意思。

17

主题

737

帖子

743

积分

高级会员

Rank: 4

积分
743
 楼主| 发表于 2008-6-13 09:08:00 | 显示全部楼层

Re:请教:播放动画一定要手工addTime吗?

每个实体都加一个Listener,会不会影响效率阿
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-22 06:30

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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