目录

我的学习分享

记录精彩的程序人生

【Box2D】4.Box2D C++ 教程-创建测试

https://blog.csdn.net/Const_Gong/article/details/51459168

声明:本教程翻译自: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.png

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


  1. Box2D C++ 教程-简介
  2. Box2D C++ 教程-环境设置
  3. Box2D C++ 教程-Testbed结构
  4. Box2D C++ 教程-创建测试
  5. Box2D C++ 教程-物体
  6. Box2D C++ 教程-定制器
  7. Box2D C++ 教程-设置世界
  8. Box2D C++ 教程-力和冲量
  9. Box2D C++ 教程-自定义重力
  10. Box2D C++ 教程-匀速运动
  11. Box2D C++ 教程-旋转到指定角度
  12. Box2D C++ 教程-跳跃
  13. Box2D C++ 教程-使用debug Draw
  14. Box2D C++ 教程-画自己的图像
  15. Box2D C++ 教程-用户数据
  16. Box2D C++ 教程-碰撞剖析
  17. Box2D C++ 教程-源代码
  18. Box2D C++ 教程-碰撞回调
  19. Box2D C++ 教程-碰撞过滤
  20. Box2D C++ 教程-传感器
  21. Box2D C++ 教程-射线投射
  22. Box2D C++ 教程-查询 World
  23. Box2D C++ 教程-安全地移除物体
  24. Box2D C++ 教程-跳跃问题
  25. Box2D C++ 教程-幽灵顶点
  26. Box2D C++ 教程-连接器-概述
  27. Box2D C++ 教程-连接器-旋转
  28. Box2D C++ 教程-连接器-平移
  29. Box2D C++ 教程-开发环境设置(iPhone)