Lua的Require的另一种实现

项目开发日志系列(三)

配置环境与工具: cocos2d-x-2.2.3,Lua5.1,tulua++,Xcode;

测试工程: /cocos2d-x-2.2.3/samples/Lua/HelloLua

Lua在我的项目中的定位

Lua本来是一种轻快而小巧的脚本语言,随着手游大行其道,它逐渐被用来开发中型 甚至大型的项目,在我的项目中 并不打算全部逻辑放到Lua层,而是让轻快的Lua去做轻快的事情,Lua只是火车上的舒服的空调或者座椅.让火车头C++同学去做火车头应该做的事情.

Lua中的require

require函数实现了不同lua文件的加载,类似于C++中的include,java中的import,
require函数会在路径中搜索输入的文件路径,大致流程如下:

继续阅读“Lua的Require的另一种实现”

2dx给Lua增加C接口的两种方式

项目开发日志系列(二)

配置环境与工具: cocos2d-x-2.2.3,Lua5.1,tulua++,Xcode;

测试工程: /cocos2d-x-2.2.3/samples/Lua/HelloLua

  • 官方接口的方式

cocos2d-x的Lua binding中给Lua增加C++接口相信很多朋友都会,谷歌上的教程全部是往/scripting/lua/cocos2dx_support 和搭配往/tools/tolua++/cocos2dx.pkg增加PKG然后重新生成 LuaCocos2d.cpp 的方式,但是这种方式不适合引擎的无缝升级,而且封闭性感觉不太好,如果能把项目的东西和引擎的东西完全脱离开 那是最好的,这样在更新 在升级版本上都非常容易,而且你看 LuaCocosd2d.cpp 都70000多行了..所以 我们应该把个人定制的C++接口完全和官方的独立开来.

  • 独立的接口增加方式

继续阅读“2dx给Lua增加C接口的两种方式”

开发日志(一) 开始的时候

项目开发日志系列(一)

  • 项目概况

基于cocos2d-x的一款Android/iOS平台的动漫题材卡牌手游,基于卡牌但超越卡牌.源于动漫但超越动漫

  • 目前进度

经过一段时间的人员调整和项目前期准备,技术选型,项目类型考量.项目终于进入实际性的阶段,之前的一段时间 全花在人员调配 项目立项,资源分配上,其实就是对外:面试面试再面试的招收新伙伴,对内:争取争取再争取内部资源.优质的资源给优质的团队 这可能在每一个公司都是这样.

  • 面试与被面试

过程中非常痛苦,走一堆流程,单单面试(目前我有参与部分伙伴的面试,以给制作人提供意见)来说,需要想很多你写代码的时候不会想的东西,你需要通过一系列问题 大概了解对方的技术深度 三观 对你未来项目的兴趣等等.而且往往面试的同学很多技术都会超过你目前的水平.这个时候你的内心是痛苦的,你会担心问的问题太过low回头被他耻笑怎么办?或者问的问题太不着边际让对方对你的面试官水平产生怀疑. 面试,在我毕业出来那会儿觉得是一种渴望被选择被看中的过程,但现在看来 更应该是一种互相选择的过程.感谢目前的新伙伴 以及面试中有过一面之缘的不算朋友的道友们.

继续阅读“开发日志(一) 开始的时候”

浅析2DX-Lua原理(一)

  • 题外

目前我的团队正使用2DX的另一个实现quick-cocos2dx来制作下一款产品,又一次得益于开源社区.提到开源 作为受益者们 很多都缺乏对自由软件认知.下面针对安卓平台记录我的一些理解,如你有更深的认识 或者 发现我的误区欢迎指点.(以下分析可能存在谬误)

  • 题内 – android机器结构

由于2DX本质是使用C/C++编写 所以在安卓平台上必须使用到NDK,NDK是一种基于原生程序接口的软件开发工具。通过此工具开发的程序直接以本地语言运行,而非虚拟机。因此只有java等基于虚拟机运行的语言的程序才会有原生开发工具包。NDK与JAVA的关系 对比AIR来说 相当于ANE与AS.只是速度和深度他们都不在一个水平上.通过下图展示的是android整个系统的大题结构:

继续阅读“浅析2DX-Lua原理(一)”