对于使用游戏引擎开发游戏而言,你选择何种语言并不重要,重要的是你对这个游戏引擎的理解和掌握,你对开发游戏的实践和感悟,毕竟一种游戏引擎常常支持很多语言开发,不同的项目使用的语言也可能很不一样。 ——有些人说

这个观点确实不无道理,但是,我依旧认为,无论是对于Cocos2d还是Unity3d抑或是其他的游戏引擎,无论你选择的是C++,C#,Lua还是JavaScript,在对游戏引擎深入研究之前或者之外,对你所选语言的研究显得尤为重要。这可能会给你带来质的提升。

一、JavaScript——想说爱你不简单

想必大家都知道Cocos2d游戏引擎支持三种语言开发,C++,Lua,JavaScript。从我个人的角度来讲,我为什么选择JavaScript,而不是老牌的C++和同样是脚本语言的Lua呢?原因有两个:

第一:虽然Cocos2d-JS平台很年轻,但是Cocos2d官方的态度貌似更加侧重对Cocos2d-JS平台的推广和支持,我觉得应该是以后官方的主要方向。而且JavaScript和老牌的C++对比来讲,提供了更多的新特性,如:热更新,对HTML游戏平台的支持等。
第二:个人认为JavaScript这门语言很有可能成为未来几年的“明星”。Unity3d主流语言选择是C#和JavaScript(定制版),而Cocos2d也支持JavaScript,而APICloud也主要使用JavaScript。从中可见,JavaScript还是很有发展的,特别是在跨平台和Hybrid APP的开发方面。

那,为什么说“想说爱你不简单”呢?不是脚本语言吗?看起来就比Java,C++之类的简单多了吧?

额,其实一开始我也这么认为的。但是随着你慢慢的深入研究,你就会发现。脚本语言只是语法规则上来看更加随意自然,如果要窥其精华,探其本质,还是要下一番苦功夫的。

二、JavaScript——应该如何爱上你

原本打算写一个系列的教程,专门讲一讲学习Cocos2d-JS所需要掌握的JavaScript基础知识。后来想想还是打消了这个念头。原因有二:

首先,关于JavaScript的教程和书籍有很多,而且都写的非常优秀,本不需要我再来赘言
二来,如果你想使用Cocos2d-JS平台来开发游戏,我推荐的是把JavaScript这门语言搞懂,彻底搞明白。而不是,只学基础语法,只学使用Cocos2d-JS急需的那部分知识。

如果,我把所有的JavaScript知识都讲一遍的话,一来没有那么多时间,二来与这个系列教程“细说Cocos2d-JS”的主旨想违背。如果以后我有机会的话,我会再开一个系列,专门讲讲JavaScript的奇妙。

三、JavaScript——学习建议和指导

虽然不能详细介绍JavaScript的全部知识,但是我这里给大家一个主要知识的提纲。至于具体内容,网上都有很多写的很好的博客,也有很多书籍。大家可以自行查找,当然了,我也会给一些推荐。

JavaScript中this的用法
JavaScript中匿名函数及闭包
JavaScript中call,apply,bind等用法
JavaScript中prototype及继承
JavaScript中变量作用域,作用域链等

推荐博客

JavaScript的变量作用域深入理解:http://www.jb51.net/article/20583.htm

JavaScript闭包 懂不懂由你反正我是懂了:http://www.jb51.net/article/28611.htm

JavaScript中的匿名函数及函数的闭包:http://www.cnblogs.com/rainman/archive/2009/05/04/1448899.html

详解JavaScript中的this:http://blog.jobbole.com/39305/

JavaScript 开发进阶:理解 JavaScript 作用域和作用域链:http://www.cnblogs.com/lhb25/archive/2011/09/06/javascript-scope-chain.html

js中bind、call、apply函数的用法:http://www.jb51.cc/article/p-mginimre-ca.html

JavaScript prototype:http://www.cnblogs.com/dolphinX/p/3286177.html

JavaScript中的原型和继承:http://kb.cnblogs.com/page/207063/

如果大家有任何疑问,欢迎留言讨论。当然,也可以给我发邮件(qsc12@software.nju.edu.cn),这样我每天查看邮件的时候,会尽早给你回复。

细说Cocos2d-JS——你必须知道的JavaScript的更多相关文章

  1. 基于JavaScript编写一个图片转PDF转换器

    本文为大家介绍了一个简单的 JavaScript 项目,可以将图片转换为 PDF 文件。你可以从本地选择任何一张图片,只需点击一下即可将其转换为 PDF 文件,感兴趣的可以动手尝试一下

  2. HTML5数字输入仅接受整数的实现代码

    这篇文章主要介绍了HTML5数字输入仅接受整数的实现代码,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  3. amaze ui 的使用详细教程

    这篇文章主要介绍了amaze ui 的使用详细教程,本文通过多种方法给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  4. html5简介_动力节点Java学院整理

    这篇文章主要介绍了html5简介,用于指定构建网页的元素,这些元素中的大多数都用于描述网页内容,有兴趣的可以了解一下

  5. ios 8 Homescreen webapp,关闭和打开iPad停止javascript

    我有一个适用于iPad的全屏HTML5网络应用程序,并且刚刚安装了IOS8来试用它,它一切正常,直到你关闭并重新启动iPad.一旦web应用程序重新启动javascript就会停止并加载新页面不会重新启动它.在iPad上的Safari中打开同一页面时,关闭和打开iPad会继续按预期工作.其他人注意到了这个或想出了一个解决方案吗?解决方法这似乎是我在iOS8.1.1更新中解决的.

  6. iOS 6 javascript与object.defineProperty的间歇性问题

    当访问使用较新的Object.defineProperty语法定义属性的对象的属性时,有没有其他人注意到新iOS6javascript引擎中的间歇性错误/问题?https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/defineProperty我正在看到javascript失败的情况,说

  7. ios – 如何使用JSExport导出内部类的方法

    解决方法似乎没有办法将内部类函数导出到javascript.我将内部类移出并创建了独立的类,它起作用了.

  8. 静音iOS推送通知与React Native应用程序在后台

    我有一个ReactNative应用程序,我试图获得一个发送到JavaScript处理程序的静默iOS推送通知.我看到的行为是AppDelegate中的didReceiveRemoteNotification函数被调用,但是我的JavaScript中的处理程序不会被调用,除非应用程序在前台,或者最近才被关闭.我很困惑的事情显然是应用程序正在被唤醒,并且它的didReceiveRemoteNotifi

  9. ios – 内存泄漏与UIWebView和Javascript

    清楚地包含一个Javascript文件到我的HTML是使UIWebView泄漏内存.当我重复使用相同的UIWebView对象时,或者每当我有内容实例化一个新的漏洞时,会出现泄漏的事实,导致我认为必须有一些JavaScript文件被loadHTMLString处理,导致泄漏.有人知道如何解决这个问题吗?

  10. iOS应用程序的UI自动化测试如何与乐器和Javascript

    从WWDC2010视频会议中了解iOS应用程序的自动化UI测试,但没有实践.从代码项目project,我们可以有一个例子.这个问题在这里听到有涉及这个的人.任何限制?解决方法我建议从AlexWollmer开始使用thisblogpost.他创建了一个非常有用的JavaScript库:tuneup_jswithtest()函数,它允许测试分离和有用的帮助者以及为自动化仪器编写测试的断言.

随机推荐

  1. 【cocos2d-x 3.x 学习笔记】对象内存管理

    Cocos2d-x的内存管理cocos2d-x中使用的是上面的引用计数来管理内存,但是又增加了一些自己的特色。cocos2d-x中通过Ref类来实现引用计数,所有需要实现内存自动回收的类都应该继承自Ref类。下面是Ref类的定义:在cocos2d-x中创建对象通常有两种方式:这两中方式的差异可以参见我另一篇博文“对象创建方式讨论”。在cocos2d-x中提倡使用第二种方式,为了避免误用第一种方式,一般将构造函数设为protected或private。参考资料:[1]cocos2d-x高级开发教程2.3节[

  2. 利用cocos2dx 3.2开发消灭星星六如何在cocos2dx中显示中文

    由于编码的不同,在cocos2dx中的Label控件中如果放入中文字,往往会出现乱码。为了方便使用,我把这个从文档中获取中文字的方法放在一个头文件里面Chinese.h这里的tex_vec是cocos2dx提供的一个保存文档内容的一个容器。这里给出ChineseWords,xml的格式再看看ChineseWord的实现Chinese.cpp就这样,以后在需要用到中文字的地方,就先include这个头文件然后调用ChineseWord函数,获取一串中文字符串。

  3. 利用cocos2dx 3.2开发消灭星星七关于星星的算法

    在前面,我们已经在GameLayer中利用随机数初始化了一个StarMatrix,如果还不知道怎么创建星星矩阵请回去看看而且我们也讲了整个游戏的触摸事件的派发了。

  4. cocos2dx3.x 新手打包APK注意事项!

    这个在编译的时候就可以发现了比较好弄这只是我遇到的,其他的以后遇到再补充吧。。。以前被这两个问题坑了好久

  5. 利用cocos2dx 3.2开发消灭星星八游戏的结束判断与数据控制

    如果你看完之前的,那么你基本已经拥有一个消灭星星游戏的雏形。开始把剩下的两两互不相连的星星消去。那么如何判断是GameOver还是进入下一关呢。。其实游戏数据贯穿整个游戏,包括星星消除的时候要加到获得分数上,消去剩下两两不相连的星星的时候的加分政策等,因此如果前面没有做这一块的,最好回去搞一搞。

  6. 利用cocos2dx 3.2开发消灭星星九为游戏添加一些特效

    needClear是一个flag,当游戏判断不能再继续后,这个flag变为true,开始消除剩下的星星clearSumTime是一个累加器ONE_CLEAR_TIME就是每颗星星消除的时间2.连击加分信息一般消除一次星星都会有连击信息和加多少分的信息。其实这些combo标签就是一张图片,也是通过控制其属性或者runAction来实现。源码ComboEffect.hComboEffect.cpp4.消除星星粒子效果消除星星时,为了实现星星爆裂散落的效果,使用了cocos2d提供的粒子特效引擎对于粒子特效不了

  7. 02 Cocos2D-x引擎win7环境搭建及创建项目

    官网有搭建的文章,直接转载记录。环境搭建:本文介绍如何搭建Cocos2d-x3.2版本的开发环境。项目创建:一、通过命令创建项目前面搭建好环境后,怎样创建自己的Cocos2d-x项目呢?先来看看Cocos2d-x3.2的目录吧这就是Cocos2d-x3.2的目录。输入cocosnew项目名–p包名–lcpp–d路径回车就创建成功了例如:成功后,找到这个项目打开proj.win32目录下的Hello.slnF5成功了。

  8. 利用cocos2dx 3.2开发消灭星星十为游戏添加音效项目源码分享

    一个游戏,声音也是非常的重要,其实cocos2dx里面的简单音效引擎的使用是非常简单的。我这里只不过是用一个类对所有的音效进行管理罢了。Audio.hAudio.cpp好了,本系列教程到此结束,第一次写教程如有不对请见谅或指教,谢谢大家。最后附上整个项目的源代码点击打开链接

  9. 03 Helloworld

    程序都有一个入口点,在C++就是main函数了,打开main.cpp,代码如下:123456789101112131415161718#include"main.h"#include"AppDelegate.h"#include"cocos2d.h"USING_NS_CC;intAPIENTRY_tWinMain{UNREFERENCED_ParaMETER;UNREFERENCED_ParaMETER;//createtheapplicationinstanceAppDelegateapp;return

  10. MenuItemImage*图标菜单创建注意事项

    学习cocos2dx,看的是cocos2d-x3.x手游开发实例详解,这本书错误一大把,本着探索求知勇于发现错误改正错误的精神,我跟着书上的例子一起调试,当学习到场景切换这个小节的时候,出了个错误,卡了我好几个小时。

返回
顶部