|
本身是新手 研究ogre才两个星期 大家轻砸
我的问题分两个部分:
1 我了解到可以用sceneNode()->_getWorldAABB();取得包围盒
那么 如果我要针对人物(比如ninja)的左右腿 左右手 头 分别设置包围盒 应该如何处理?
我找到skeleton 里面的BoneList 但是都没有包围盒的概念
2 如果我在骨骼上通过
Entity *Ent = mSceneMgr->createEntity("razor","razor.mesh");
TagPoint *tagPoint = m_pNinja->getEntity()->attachObjectToBone("Joint13", Ent);
当然 是能够把一个entity挂到骨骼上 也能通过Ent->getBoundingBox();来获得包围盒 但是我又没办法
像用类似于scenNode::showBoundingBox(true);那样去显示包围盒
请问 我如何能够让挂在骨骼上的entity显示包围盒呢
3 我自己曾经思考过这个问题 是不是可以给挂在骨骼上的entity也创建一个scenenode来获得显示包围盒
的效果。又觉得这样貌似有点2
4 总之 我现在想做到人物格斗时 能根据身体不同部位(以及手中剑)的碰撞和当时人物处于的状态
来判定到底是谁该费血 我现在的思路就是用不用的包围盒去进行碰撞检测然后判断 比如 如果A、B相互碰撞了
我要去看A B 谁处于攻击状态 谁处于非攻击状态 如果都处于攻击状态 就要看 是A的哪个部位 和B的哪个部位碰撞了
显然 手和脚是可以攻击的 而身躯就不能 但是武器(比如刀剑或者子弹)要比拳脚猛
如果有人知道我的想法的话 能不能本着人道主义精神 给我提一些建议和看法呢 因为我才研究客户端两个星期
完全不知道这样做是不是可行 |
|