谈谈对quick-cocos2d-x和cocos2d-x lua的区别理解

在说之前,我还是把这个两个名词区分一下,毕竟太长,后面打起来肯定麻烦,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的区别理解

时间: 2024-10-02 05:04:02

谈谈对quick-cocos2d-x和cocos2d-x lua的区别理解的相关文章

Cocos2d-x3.0模版容器详解之——cocos2d::Vector<T>, cocos2d::Map<K,V>, cocos2d::Value

Cocos2d-x3.0模版容器详解之一:cocos2d::Vector<T>  http://www.cocoachina.com/bbs/read.php?tid=199793Cocos2d-x3.0模版容器详解之二:cocos2d::Map<K,V>  http://www.cocoachina.com/bbs/read.php?tid=199916Cocos2d-x3.0模版容器详解之三:cocos2d::Value  http://www.cocoachina.com/b

cocos2d 游戏开发:Cocos2d v3 &quot;hello world&quot;+显示飞船

V3 RC4 版本图片 显示一个飞船 将Chapter1中 SpaceCargoShip.png 文件 添加到项目里面. 代码在 init : CCSprite *spaceCargoShip = [CCSprite spriteWithImageNamed:@"SpaceCargoShip.png"]; [spaceCargoShip setPosition:ccp(200.0f,150.9f)]; [self addChild:spaceCargoShip]; 在上面的代码下增加如

【Cocos2d开发】Cocos2d下安卓环境的搭建

在进行Cocos2d游戏开发前 我们先来配置一下环境,我们先来准备一下工具,我们所需要的工具分别为: 1.Cocos2d引擎 2.JDK 3.SDK 4.NDK 5.ANT 6.ADT 1.下载Cocos2d-x引擎,目前最新版本为3.6,本教程的所有例子以3.4版本为例,下载完直接解压即可.点击下载Cocos2d引擎 2.JDK 检查自己电脑上是否已装好JDK环境 方法:打开终端,输入 java–version 如果没有安装过,点击下载JDK 效果如下: 3.ADT下载,ADT被称为安卓的集成

我来谈谈PHP和JAVA在web开发上的的区别

这里的标题写的是谈谈PHP和JAVA的区别,其实是委婉的说法,其实别人是想听PHP好还是JAVA好!!! 从而从中找到存在感!!! 因为由于我是从多年的php开发转到java开发的.所以最,不时的有好几个同事问我,你觉得java好还是php好.我每次的回答都是,各有千秋吧,各有各的好处,这是最实际的答案. 然后临了,去想想到底都有什么差别.今天我就来仔细总结下,php与java到底有啥差别吧. 1. php即写即用的. 也就是说每次只有一改动完成,用户立马看到效果,而java则慢多了,代码改动完

谈谈传统的监控设备与智能的监控的区别

题目:谈谈传统的监控设备与智能的监控设备 我所说的传统的监控是指:只起到监控的功能,不能够起到什么智慧的管控,这类摄像头的作用非常的小,仅仅用于东西丢失后调监控而已,但是调监控也是一件非常头疼的事情,你需要定位到具体的时间点,然后进一步缩小范围的去查看,这是非常花时间与浪费时间的一个问题 而智能的监控设备呢?可以通过app远程操作,可以实时查看一些录像信息,有录制的音频回放,但是这也仅仅是一般智能的监控而已,目前海康威视的萤石云实现的就是这个功能,那么真正的比较成熟的智能监控是什么呢?好,我想大

谈谈 char *num=&quot;123&quot;;和char num[4]=&quot;123&quot;;的区别

最近写程序的时候发现这样一个问题 #include<iostream> #include <string.h> using namespace std; void reverse(char *str) { int len=strlen(str); char *p=str; char *q=str+len-1; while(p<q) { char temp=*p; *p=*q; *q=temp; p++; q--; } } int main() { char *n1="

谈谈对Canal(增量数据订阅与消费)的理解

概述 canal是阿里巴巴旗下的一款开源项目,纯Java开发.基于数据库增量日志解析,提供增量数据订阅&消费,目前主要支持了mysql(也支持mariaDB). 起源:早期,阿里巴巴B2B公司因为存在杭州和美国双机房部署,存在跨机房同步的业务需求.不过早期的数据库同步业务,主要是基于trigger的方式获取增量变更,不过从2010年开始,阿里系公司开始逐步的尝试基于数据库的日志解析,获取增量变更进行同步,由此衍生出了增量订阅&消费的业务,从此开启了一段新纪元. 基于日志增量订阅&消

谈谈Delphi的类和对象:三、类可以理解成一种特殊的数据结构、类型转换

三.类可以理解成一种特殊的数据结构 我们知道数据类型可以进行强制类型转换,类既然可以理解成一种数据类型,那么它也应该可以进行类型转换.比如下面代码为一个按钮(Button1)的单击事件 procedure TForm1.Button1Click(Sender: TObject); var ACaption: String; begin ACaption:= TButton(Sender).Caption; //Sender从TObject转化为TButton ShowMessage(Format

谈谈你对多进程,多线程,以及协程的理解,项目是否用??

这个问题被问的概率相当之大,其实多线程,多进程,在实际开发中用到的很少,除非是那些对项目性能要求特别高的,有的开发工作几年了,也确实没用过,你可以这么回答,给他扯扯什么是进程,线程(cpython中是伪多线程)的概念就行,实在不行你就说你之前写过下载文件时,用过多线程技术,或者业余时间用过多线程写爬虫,提升效率. 进程:一个运行的程序(代码)就是一个进程,没有运行的代码叫程序,进程是系统资源分配的最小单位,进程拥有自己独立的内存空间,所以进程间数据不共享,开销大. 线程: 调度执行的最小单位,也