详解针对cocos2d-x.ini文件

2015年03月24日 11:10 0 点赞 0 评论 更新于 2025-11-21 18:23

在开发过程中,当需要调用 C++ 自定义类时,我们需要对 cocos2d-x.ini 文件进行复制并修改。本文将详细介绍如何操作以及需要修改的具体内容。

操作步骤

当需要调用 C++ 自定义类时,我们要对 cocos2d-x.ini 文件进行复制并修改。具体操作如下:在 frameworks/cocos2d-x/tools/tolua 目录下,复制 cocos2d-x.ini 文件的配置信息,然后将其中的一些参数修改为我们自定义类的参数。

配置参数详解

以下是 cocos2d-x.ini 文件中各参数的详细说明:

[custom_api]

<a id="heading-2-prefix-会被添加到生成的函数-你也可以选择不将其添加到模板中"></a>
# prefix 会被添加到生成的函数,你也可以选择不将其添加到模板中
prefix = custom_api

<a id="heading-3-所有的类都会嵌入到这个命名空间"></a>
# 所有的类都会嵌入到这个命名空间
target_namespace = my

<a id="heading-4-类所在的路径-如果有多个路径-用空格隔开"></a>
# 类所在的路径,如果有多个路径,用空格隔开
headers = %(cocosdir)s/../runtime-src/Classes/PanZoomLayer.h

<a id="heading-5-需要注册的类-如果有多个类-用空格隔开"></a>
# 需要注册的类,如果有多个类,用空格隔开
classes = PanZoomLayer

<a id="heading-6-不提供给-Lua-的-public-成员函数"></a>
# 不提供给 Lua 的 public 成员函数
skip = PanZoomLayer::[onTouchesBegan onTouchesMoved onTouchesEnded init onEnter onExit update]

<a id="heading-7-以下这些参数保持为空即可"></a>
# 以下这些参数保持为空即可
rename_functions =
rename_classes =
remove_prefix =
classes_have_no_parents =
base_classes_to_skip =
abstract_classes =
script_control_cpp = no

参数解释

  1. prefix:该参数的值会被添加到生成的函数名前。若不需要此前缀,可根据实际情况调整或不添加到模板中。
  2. target_namespace:所有注册的类都会被嵌入到这个指定的命名空间中。
  3. headers:指定类所在的头文件路径。若有多个头文件路径,使用空格分隔。
  4. classes:列出需要注册到 Lua 的类名。若有多个类,同样使用空格分隔。
  5. skip:指定不提供给 Lua 的类的 public 成员函数。这里使用类名加作用域解析运算符 :: 以及函数名列表的方式指定。
  6. rename_functionsrename_classesremove_prefixclasses_have_no_parentsbase_classes_to_skipabstract_classes:这些参数在当前场景下保持为空即可。
  7. script_control_cpp:设置为 no,表示不使用脚本控制 C++。

通过以上步骤和参数配置,我们可以完成 cocos2d-x.ini 文件的自定义修改,以满足调用 C++ 自定义类的需求。