最近在学习OGRE,对OGRE是使用我做了初步整理,很多方面不全的。
用ogre引擎编程,应注意以下几点:
1.初始化时应该创建root、scenemanager、camera、viewpor;加载resource与plugin,其中resource文件中指出程序用到的图片、声音等资源文件获取路径,plugin文件声明程序用到的插件。
2.使用overlay时,不论是手动生成的还是脚本中定义的,overlay属性zorder不可缺。
3.一个表层组件在其父容器中有两个布局属性,垂直和水平。 其中垂直属性通过 vert_align标记进行设置,其值可以是top,center 或者 bottom之一;而水平属性则通过horiz_align 标 记来设置,其值可以是 left, middle或者 right 之一。在默认的情况下,系统会使用 top 与left 来作为两个布局属性的默认值。
4.实现动画,在mateiral脚本texture_unit中应该是anim_texture,单一图片贴图是texture,另外动画帧还因该写清楚帧之间的时间间隔
5.在程序中使用overlay或material时,注意名称算是否与脚本一致;如果是程序创建的,应该注意字符串位置,实现动画帧有时可能会出现图与material未产生联系,下面这段代码可以解决问题
for(i=0;i<6;i++)
{
sFish[i]="pfish6_000"+StringConverter::toString(i)+".png"; TextureManager::getSingleton().load(sFish[i],ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME);
}
TextureUnitState*pFish=sFishEle->getTechnique()->getPass(0)->getTextureUnitState(0);
pFish->setAnimatedTextureName(sFish,6,0.1*6);
6.实现动画,脚本有两种格式:
格式1:一一列举出图片名间隔时间;
格式2:首先将图片重命名未后缀_0_1···_(n-1),再写脚本图片基本名帧数 时间间隔。
如脚本
格式1:
anim_texturebfish1_0000.png bfish1_0001.png bfish1_0002.png bfish1_0003.pngbfish1_0004.png bfish1_0005.png 0.6
格式2:
anim_texturebfish1_000.png 6 0.6
图片命名为bfish1_000_0.png···bfish1_000_5.png