Oh!Coder

Coding Life

Box2D C++ 教程-创建测试

| Comments

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

创建属于你的测试

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#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文件添加如下两行代码:

1
2
3
#include "FooTest.h"

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

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

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

pic

如果你想让你的测试例子在软件启动的时候作为默认的第一个,那么只要把FooTest::Create 这行代码放到列表的第一行就可以了。

Comments