游戏开发论坛

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

为什么不能跳转CAMERA

[复制链接]

3

主题

9

帖子

9

积分

新手上路

Rank: 1

积分
9
发表于 2007-8-14 17:23:00 | 显示全部楼层 |阅读模式
程序如下:
    建立一个robot:
    void createScene(void)
{
        mRobot = mSceneMgr->createEntity("Robot", "Robot.mesh");

        mRobotNode = static_cast<SceneNode*>(mSceneMgr->getRootSceneNode()->createChild());

        mRobotNode->attachObject(mRobot);

        mRobotNode ->showBoundingBox(true);

        mAdjustTerrainRaySceneQuery = mSceneMgr->createRayQuery(
                        Ray());
}
    void CheckForTerrain()
        {
        mAdjustTerrainRay.setOrigin(mCamera->getPosition());
        mAdjustTerrainRay.setDirection(Vector3::NEGATIVE_UNIT_Z);
                       
        mAdjustTerrainRaySceneQuery->setRay(mAdjustTerrainRay);                                Ogre::RaySceneQueryResult &queryResult = mAdjustTerrainRaySceneQuery->execute();

        if (queryResult.size() == 0)
        {                               
            return;
        }
        Ogre::RaySceneQueryResult::iterator i = queryResult.begin();
               
        for (; i != queryResult.end(); i++)
           if (i->WorldFragment)
           {
              mCamera->setPosition(mCamera->getPosition().x,
              i->worldFragment->singleIntersection.y,
              mCamera->getPosition().z - 10);       
            }
        return;
        }

     为什么没有与动画的机器人发生碰撞,也没有移动镜头,连i->WorldFragment都没有找到,是空,为什么?

7

主题

57

帖子

57

积分

注册会员

Rank: 2

积分
57
发表于 2007-8-14 22:56:00 | 显示全部楼层

Re:为什么不能跳转CAMERA

mRobotNode = static_cast<SceneNode*>(mSceneMgr->getRootSceneNode()->createChild());
把这句改成
mRobotNode = mSceneMgr->getRootSceneNode()->createChildSceneNode();

7

主题

57

帖子

57

积分

注册会员

Rank: 2

积分
57
发表于 2007-8-14 22:58:00 | 显示全部楼层

Re:为什么不能跳转CAMERA

mAdjustTerrainRay.setDirection(Vector3::NEGATIVE_UNIT_Z);
改成
mAdjustTerrainRay.setDirection(Vector3::NEGATIVE_UNIT_Y);

3

主题

9

帖子

9

积分

新手上路

Rank: 1

积分
9
 楼主| 发表于 2007-8-15 11:02:00 | 显示全部楼层

Re:为什么不能跳转CAMERA

我实验过,queryResult.size()不等于0,但是i->WorldFragment一直等于0,只有在demo_Terrain里,才能正常运行,难道地形是个很特殊的模型,而机器人不是,他们之间有很大区别??

7

主题

57

帖子

57

积分

注册会员

Rank: 2

积分
57
发表于 2007-8-15 12:09:00 | 显示全部楼层

Re:为什么不能跳转CAMERA

RaySceneQuery在不同的SceneManager里有不同的实现,
DEMO_Terrain里用的是TerrainManager,
所以RaySceneQuery是不能这样简单的移植的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-25 11:48

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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