谈谈ogre中级教程中例子与appwizard冲突

    不知道为什么坛子里面没有人讲这个错误的,或许大家都没有用appwizard吧,也或许用ogre的人不多,反正我搜索错误的时候没有在中文论坛里找到解答。先谈谈错误吧,我们在appwizard中加入我们自己新建的库,照着代码敲那,当然最好明白例子的意思。在MOving the Robot之前,我们会发现运行结果根本出不来,弹出一个如下图的错误:

什么,我明明是按照教程来得啊,没办法,先谷歌看看有没有人解决的,看来关键字是使用谷歌的关键,关键字使用不正确也许你一辈子都找不到答案,你直接粘贴上面的错误肯定得不到结果的。实验室马上关灯,直接说我得到的结果,由于在APPwizard中setup调用函数的顺序是    createFrameListener();createScene();即我们先创建的帧监听,后创建的场景,其实这是很好的设计方法,但由于教程没有考虑到我们广大的用户,而没有在意这一细节,由于我们在createScene();中创建的mEntity,所以你必须在createFrameListener();找不到mEntity了,这一细节让我们全盘皆输。解决方法有二:

1、调换createFrameListener()和createScene()的顺序;(在BaseApplication)

2、把createScene()中的创建机器人实体代码剪切到createFrameListener()中。(你自己创建的文件)

最后上图:

PS:发现国内论坛要么是热心人太少了,要么是技术更新不及时。今天下午实验室开例会,突然感觉自己的路好长啊,图形学这条路自己要劈斩的荆棘还有很多,加油!

原文地址:https://www.cnblogs.com/bite_the_bullet/p/1846884.html