在说之前,我还是把这个两个名词区分一下,毕竟太长,后面打起来肯定麻烦,quick-cocos2d-x就简称quick,cocos2d-x lua就姑且叫原生lua吧。
我觉得对于第一次接触这两个的小伙伴们肯定多多少少会跟我有一样的疑惑,这两个是使用两种不同的API吧。我只能说说对了一半,确实,quick有一套自己的API,但是,quick还是支持原生lua的api,就好比C和C++的关系,quick是一个超集。
还记得第一次打开quick主页的时候,那时候还没有被触控收购,就看到标题写到—— “这是一个志在提高 cocos2d-x 开发效率的社区” ,是啊,要是不提高怎么会叫quick呢。还有一次看了一下他们的人才招聘,有一条是这么写到——“有强烈的冲动想让别人被自己开发的工具感动到哭”,哈哈,确实现在慢慢觉得是有点被感动到哭,提供的一些API的确便捷很多很多。
下面简单举个例子吧,还是显示经典的HelloWorldScene中那张背景图片,如果我们在quick中使用原生lua的写法,就和使用C++写一样
function MainScene:ctor() self.size = CCDirector:sharedDirector():getWinSize() local sp = CCSprite:create("HelloWorld.png") sp:setPosition(ccp(self.size.width/2, self.size.height/2)) self:addChild(sp) end
需要这样些语句才能完成,不过用quick提供的API,那么就简单太多了,真的感动的要哭
function MainScene:ctor() local sp = display.newSprite("HelloWorld.png", display.cx, display.cy) self:addChild(sp) end
就这些,是不是太方便,对于坐标的提供大大简化了需求,32个赞!
下面说一说对于quick的学习方法吧,我觉得C++那一套编写游戏的方法你掌握的话,对于lua开发游戏难度到并不是太大,毕竟相应的函数方法都是有的,困难之处在于怎么使用lua的方式写出来,比如一个触摸响应事件,如果用quick提供的方式写出来,这就需要好好看看API了,当然quick提供的在线API还不是很完整,有些地方还是不太详细的,所以看sample是另一个途径了,quick里面提供了大量的sample,这对于我们来说比任何资源都重要。一旦把这些基础的用法掌握了,可以看看那个CoinFlip这个完整的游戏示例,我觉得这样一来差不多自己就能用quick开发游戏了。
我想说的也就这些,后面有时间分享一下自己quick的学习笔记
谈谈对quick-cocos2d-x和cocos2d-x lua的区别理解