KBEngine官方论坛

 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 配置 开服
查看: 1363|回复: 5

建议在C++层也开通一个接口

[复制链接]

35

主题

91

帖子

401

积分

中级会员

Rank: 3Rank: 3

积分
401
发表于 2015-8-14 10:54:24 | 显示全部楼层 |阅读模式
建议在C++层也开通一个接口, 让开发者可以选择有些逻辑能在c++上实现。
回复

使用道具 举报

8

主题

3374

帖子

7586

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
7586
QQ
发表于 2015-8-14 11:34:36 | 显示全部楼层
你可以自己在c++层扩展Entity
柯标
3603661@qq.com
回复

使用道具 举报

35

主题

91

帖子

401

积分

中级会员

Rank: 3Rank: 3

积分
401
 楼主| 发表于 2015-8-14 15:47:49 | 显示全部楼层
例如我想把技能的某些逻辑放在C++里  也仅仅是扩展Entity就可以了吗。
回复

使用道具 举报

8

主题

3374

帖子

7586

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
7586
QQ
发表于 2015-8-14 16:22:37 | 显示全部楼层
legend 发表于 2015-8-14 15:47
例如我想把技能的某些逻辑放在C++里  也仅仅是扩展Entity就可以了吗。

技能逻辑可以与entity没关系, 你单独扩展一个c++模块。
在entity脚本调用c++技能暴露出来的接口就行了。
柯标
3603661@qq.com
回复

使用道具 举报

4

主题

16

帖子

54

积分

注册会员

Rank: 2

积分
54
发表于 2016-8-13 15:21:51 | 显示全部楼层
请教啊,写的c++的接口,如何暴露出来,让python使用?能否提供一个简单的例子,相信很多想用
回复

使用道具 举报

8

主题

3374

帖子

7586

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
7586
QQ
发表于 2016-8-15 09:54:07 | 显示全部楼层
wsong 发表于 2016-8-13 15:21
请教啊,写的c++的接口,如何暴露出来,让python使用?能否提供一个简单的例子,相信很多想用 ...
  1.        

  2. ENTITY_METHOD_DECLARE_BEGIN(Baseapp, Base)
  3. SCRIPT_METHOD_DECLARE("createCellEntity",                                createCellEntity,                                METH_VARARGS,                        0)
  4. SCRIPT_METHOD_DECLARE("createInNewSpace",                                createInNewSpace,                                METH_VARARGS,                        0)
  5. SCRIPT_METHOD_DECLARE("destroyCellEntity",                                pyDestroyCellEntity,                        METH_VARARGS,                        0)
  6. SCRIPT_METHOD_DECLARE("teleport",                                                pyTeleport,                                                METH_VARARGS,                        0)
  7. ENTITY_METHOD_DECLARE_END()

  8. SCRIPT_MEMBER_DECLARE_BEGIN(Base)
  9. SCRIPT_MEMBER_DECLARE_END()

  10. ENTITY_GETSET_DECLARE_BEGIN(Base)
  11. SCRIPT_GET_DECLARE("cell",                                                                pyGetCellMailbox,                                0,                                                                0)       
  12. SCRIPT_GET_DECLARE("client",                                                        pyGetClientMailbox,                                0,                                                                0)       
  13. SCRIPT_GET_DECLARE("databaseID",                                                pyGetDBID,                                                0,                                                                0)       
  14. SCRIPT_GETSET_DECLARE("shouldAutoBackup",                                pyGetShouldAutoBackup,                        pySetShouldAutoBackup,                        0,                0)
  15. SCRIPT_GETSET_DECLARE("shouldAutoArchive",                                pyGetShouldAutoArchive,                        pySetShouldAutoArchive,                        0,                0)
  16. ENTITY_GETSET_DECLARE_END()
  17. BASE_SCRIPT_INIT(Base, 0, 0, 0, 0, 0)       


  18.         /**
  19.                 脚本获取mailbox
  20.         */
  21.         DECLARE_PY_GET_MOTHOD(pyGetCellMailbox);



  22. PyObject* Base::pyGetCellMailbox()
  23. {
  24.         if (!hasFlags(ENTITY_FLAGS_DESTROYING) && isDestroyed())
  25.         {
  26.                 PyErr_Format(PyExc_AssertionError, "%s: %d is destroyed!\n",               
  27.                         scriptName(), id());               
  28.                 PyErr_PrintEx(0);
  29.                 return 0;                                                                                                                                                                       
  30.         }

  31.         EntityMailbox* mailbox = cellMailbox();
  32.         if(mailbox == NULL)
  33.                 S_Return;

  34.         Py_INCREF(mailbox);
  35.         return mailbox;
  36. }

复制代码


方法和属性的暴露片段, 你可以根据API关键字去看代码,依葫芦画瓢的映射方法和属性。
柯标
3603661@qq.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|KBEngine Forum

GMT+8, 2018-12-11 17:57 , Processed in 0.033868 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表