当前位置: 首页 > 软件库 > 程序开发 > 游戏开发包 >

Dorothy

Cocos2d-x-Lua 的分支
授权协议 MIT
开发语言 C/C++ Lua
所属分类 程序开发、 游戏开发包
软件类型 开源软件
地区 国产
投 递 者 祁和通
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Dorothy是Cocos2d-x-Lua的另一个分支,基于原始版本2.1rc0版再次开发的框架。之所以开始在这个版本上做自定义的开发,是 因为我在跟随原版的更新,持续做开发的过程中,发现它的功能渐渐变得又多又杂,吸纳了各式各样的扩展,光是骨骼动画的扩展就重复增加了两套代码。并且它的 扩展的开发我觉得定制得也不够深入,除了引入更多bug坑以外,并没有简化太多的开发工作。此外原版的Lua接口是几乎完全依赖tolua++自动生成 的,导出了很多没有意义的接口,并生成很多冗余的绑定代码,并且tolua++的绑定机制也太过于通用化,没有很好地利用Cocos2d-x的特性。

所以一方面为了精简核心框架,另一方面又提供更加深度定制的辅助框架,优化Lua绑定代码,我渐渐地竟然写出了这样一个分支版本来。

这个分支提供了更加精简的API接口。移除了原版中不是特别核心的扩展功能,添加了更有用的特性,修复了原版的一些bug,并且改善了Lua绑定的核心代码和tolua++生成的绑定代码。

下图是 Android 下的运行效果:

Android上运行的图片

特性

移除部分

  • 使Cocos2d-x只作为纯粹的图形引擎存在(几乎移除了全部扩展)

  • 使Box2D作为唯一的物理引擎(移除了chipmunk)

  • 使Lua作为唯一的脚本引擎(移除了Javascript)

  • 只将在编写脚本逻辑层面上有意义的接口导出到Lua(Lua的用户不应该需要知道C++层的实现细节来使用脚本接口,为了确定和精简应该导出的接口,我花了数月时间陆续通读了Cocos2d-x的每一个函数实现,最终筛选出一部分我认为真正有必要的类和接口)

  • 1.禁用全局变量 可以在zbstudio中使用Analyze(Shift+F7)功能检查全局变量的使用。但是可以通过模块做数据的共享,但是只能共享基本数据类型包括string, number, boolean, table, 没有俘获userdata类型变量的function等,共享的table中也不能存有userdata。共享数据的模块写法如下: -- file SharedModule.lua

 相关资料
  • 本文向大家介绍Lua和C++的通信流程分解,包括了Lua和C++的通信流程分解的使用技巧和注意事项,需要的朋友参考一下 网上关于Lua的教程似乎还没有泛滥,最近刚好学习在Cocos2d-x使用Lua,当然了,我是写教程狂,我会分享我的学习心得的~ (旁白:我噗~!每次你写东西我就要吐槽,你不累么= =)   这是第一课,先来让Lua和C++认识一下,顺便让它们逛街吃饭牵小手什么的… (旁白:。。。

  • lua

    这是为方便使用脚本语言LUA进行web应用开发准备的。 来看代码: #include <mongols/lua_server.hpp> int main(int, char**) { int port = 9090; const char* host = "127.0.0.1"; mongols::lua_server server(host, port, 50

  • Lua

    Lua 是一个小巧的脚本语言。作者是巴西人。该语言的设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。 Lua脚本可以很容易的被C/C++代码调用,也可以反过来调用C/C++的函数,这使得Lua在应用程序中可以被广泛应用。不仅仅作为扩展脚本,也可以作为普通的配置文件,代替XML,Ini等文件格式,并且更容易理解和维护。 Lua由标准C编写而成,代码简洁优美,几乎在所有操作系统和

  • 本文向大家介绍实现Lua中数据类型的源码分享,包括了实现Lua中数据类型的源码分享的使用技巧和注意事项,需要的朋友参考一下 概述     在Lua中有8种基础类型:nil、boolean、number、string、userdata、function、thread和table。可以使用函数type查看某个变量或值的类型,返回相应的类型名称。像其他动态语言一样,在语言中没有类型定义的语法,每个值都携

  • 在 Y 分钟内学习 X:风景优美的编程语言之旅,以不同的视角和教程方式,展现语言工具的特性,非常趣味性的学习教程。

  • Lua配置概述 filter.http.Lua filter.http.Lua proto { "inline_code": "..." } inline_code (string, REQUIRED) Envoy将执行的Lua代码。这可以是一个非常小的脚本,如果需要,可以从磁盘进一步加载代码。请注意,如果使用JSON配置,则代码必须能正确转义。YAML配置可能更容易阅读,因为YAML支持多

  • Lua配置概述。 { "name": "lua", "config": { "inline_code": "..." } } inline_code (required, string) Envoy将执行的Lua代码。这可以是一个非常小的脚本,如果需要,可以从磁盘进一步加载代码。请注意,如果使用JSON配置,则代码必须能够正确转义。YAML配置可能更容易阅读,因为YAML支持

  • 注意:Lua脚本HTTP过滤器是实验性的。在生产中使用需要您自担风险。它正在被公布,以便对暴露的API进行初步反馈,并进行进一步的开发,测试和验证。当我们认为Lua过滤器已经受到足够的API稳定性测试,通常称其为生产准备就绪时,该警告将被移除。 概述 HTTP Lua过滤器允许在请求和响应流程中运行Lua脚本。在运行时使用LuaJIT。正因为如此,支持的Lua版本大部分是5.1,具有一些5.2的特