游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2188|回复: 0

Ogrenewt的碰撞检测

[复制链接]

1

主题

2

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2009-3-24 11:54:00 | 显示全部楼层 |阅读模式
加载了三个模型,路面、路边的建筑物、小车
Entity *ent=mSceneMgr->createEntity("lumian","lu.mesh");              //路面加载
                SceneNode* node_lumian=mSceneMgr->getRootSceneNode()->createChildSceneNode("lumian");
                node_lumian->attachObject(ent);
                OgreNewt::Collision* col=new OgreNewt::CollisionPrimitives::TreeCollision(m_World,node_lumian,false);
                OgreNewt::Body* body_lu=new OgreNewt::Body(m_World,col);
                body_lu->attachToNode(node_lumian);
                delete col;



                Entity *entfang=mSceneMgr->createEntity("fangzi","fang.mesh");              
                SceneNode* node_fang=mSceneMgr->getRootSceneNode()->createChildSceneNode("fangzi");
                node_fang->attachObject(entfang);
                col=new OgreNewt::CollisionPrimitives::TreeCollision(m_World,node_fang,false);
                OgreNewt::Body* body_fang=new OgreNewt::Body(m_World,col);
                body_fang->attachToNode(node_fang);
                delete col;


                Vector3 size=Ogre::Vector3(30,10,40);
                Entity *entche=mSceneMgr->createEntity("chezi","car.mesh");              
                node_che=mSceneMgr->getRootSceneNode()->createChildSceneNode("chezi");
                node_che->attachObject(entche);
                node_che->yaw(Degree(8));
                col=new OgreNewt::CollisionPrimitives::Box(m_World,size);
                body_che=new OgreNewt::Body(m_World,col);
                delete col;
                Ogre::Real mass=20;
                Ogre::Vector3 inertia=OgreNewt::MomentOfInertia::CalcBoxSolid(mass,size);
                body_che->setMassMatrix(mass,inertia/*Vector3(10,0,10)*/);
                body_che->attachToNode(node_che);
                body_che->setStandardForceCallback();
                body_che->setPositionOrientation(Ogre::Vector3(20,2.5,0),Ogre:uaternion::IDENTITY);
        检测小车与建筑物间的碰撞,我用的是setvelocity和setomega控制小车运动,运动很正常,与建筑物斜着碰撞时也正常,但与建筑物正面碰撞时就不行,不知道为什么,哪位请指点一下,谢谢!!!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-20 01:35

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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