欢迎光临Software MyZone,有问题可留言或到站点论坛发帖,争取第一时间帮忙解决 || 站点论坛:火龙论坛 || 淘宝小店:应小心的易淘屋 【欢迎大家提建设性意见】

Box2D C++教程 第四节:创建测试

声明:本教程翻译自:Box2D C++ tutorials-Making a test,仅供学习参考

创建自己的测试

让我们往testbed中添加一个测试吧,这只是一个简单的例子,作为开始不会实现很多功能,但是作为一个例子我们会看到所有需要编辑和修改的地方。

首先我们需要一个Test类的子类来定义我们自己的测试。在Testbed/Tests文件夹下面,应该可以看到出现在testbed项目中名字相近的所有测试例子的.h头文件。在这个目录下添加你自己的.h头文件,取一个聪明的名字比如呃…FooTest。现在,我们将会创建一个只能在屏幕顶部显示文本的空例子。

#ifndef FOOTEST_H
#define FOOTEST_H

class FooTest : public Test
    {
        public:
        FooTest() { } //do nothing, no scene yet

        void Step(Settings* settings)
        {
            //run the default physics and rendering
            Test::Step(settings);

            //show some text in the main screen
            m_debugDraw.DrawString(5, m_textLine, "Now we have a foo test");
            m_textLine += 15;
        }

        static Test* Create()
        {
            return new FooTest;
        }
    };

#endif

上面的类没有覆盖任何输入方法,也没有设置场景。仅覆盖了Step()方法,并使用父类的m_debugDraw变量来顺便在屏幕上输出一些信息。另一个父类的变量m_textLine用来设置文本输出的位置,如果你不想一直在顶部输出多行文本信息,你就应该这么做。Create()方法为testbed框架在必要的时候提供了自身测试类的实例。

下面添加至testbed,为同一目录下的TestEntries.cpp文件添加如下两行代码:

#include "FooTest.h"

        {"Foo test", FooTest::Create},

这些已经存在的例子都会在这里一行行列出来。仔细看看这个文件你就会明白我是什么意思了(译者注:其实就是说所有新建的例子都会在这里添加到框架里)。

现在再次编译项目并且运行它。你应该可以在右侧的项目列表的最下方看到”Foo test”选项,当你选中它运行之后,大概看起来像是这个样子:

如果你想让你的测试例子在软件启动的时候作为默认的第一个,那么只要把FooTest::Create 这行代码放到列表的第一行就可以了。
摘自:http://www.ohcoder.com/post/2012-06-11/40028420673