项目开发日志(四)

C++是一种自由度非常高的语言,特别是面向对象中的动态绑定特性,正确使用这种特性会你写代码非常舒畅.但是错误的使用有时候也很致命.

今天在编写战斗逻辑层代码的时候在释放技能回调的地方使用了C++的多重继承,在一个继承了几个回调基类(技能释放完毕回调,移动完毕回调等)的派生类里面出现了无法绑定到正确的基类对象的问题.仔细分析后 发现是由于在第一层类型转换的时候已经把指针转换为void*,然后在最后一层调用无法正确转换.下面把问题重现:

继续阅读

项目开发日志系列(三)

配置环境与工具: 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函数会在路径中搜索输入的文件路径,大致流程如下:

继续阅读

项目开发日志系列(二)

配置环境与工具: 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++接口完全和官方的独立开来.

  • 独立的接口增加方式

继续阅读

项目开发日志系列(一)

  • 项目概况

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

  • 目前进度

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

  • 面试与被面试

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

继续阅读