cocos2dx-lua开发旅程(一)

最近要做一个手游项目,打算用cocos2dx来做,我也是初学者,网上很多书籍和资料都是采用cocos2dx的c++版本来做开发示例的

很少关于cocos2dx和lua怎么结合在实际项目中的教程,这使得我很痛苦,所以我写下这一系列教程,希望跟我一样的同学能得到小需帮助

首先,我讲讲我为什么要用cocos2dx+lua来开发吧

我个人觉得,对于开发一些休闲类、性能要求不太高的游戏,应该采用cocos2dx+lua、cocos2dx+html5、cocos2dx+javascript等来会使开发的效率提高

原因:

1、我们不用考虑很多c++中最烦的指针没师范而导致的内存泄漏问题,虽然说cocos2dx已经有一套内存管理机制,但是对于我这种渣渣程序员来说

我绝对保证,我写的程序一旦大了,肯定会有内存泄漏的发生,而且写c++程序还有很多坑,比如以后如果要做游戏热更,那肯定是绝对的麻烦,甚至可以说无法完成

2、用lua等脚本语言来开发游戏逻辑部分代码将变得非常简便,cocos2dx(我使用的是3.4版本)目前提供了一个马上刷新加载程序的功能,使得我们一旦修改了代码,可以不用像C++那样编译半天之后才看效果,只需按一下F5就可以了,几乎达到了“修改即看”的效果,方便我们调整ui布局等等

3、用lua脚本之后,我们就可以少考虑内存泄漏问题了,我个人对于这东西很是害怕,所以如果不用考虑那么多,将利于我把精力放在其他思考地方上去,而且使用lua脚本可以执行热更,目前很多手游都的热更都是游戏的逻辑代码,其中很多就是用lua写的,C++的要重新编译,估计实现不容易吧(未探究,知道的同学告诉我一下哈,谢谢!)

至于说为什么用cocos2dx-lua而不用cocos2dx-html5或者cocos2dx-javascript,我认为这个就要根据你们项目组情况咯,总之走C++和脚本语言开发游戏的方向肯定是对的

好了,说了这么多废话,现在来开始讲一讲我最新学到的成果,有什么不对的地方请大神们多多指教,也欢迎大家与我交流,QQ:1609097487(不过我比较少上Q)

首先有些cocos2dx-lua的基础教程,在cocos2dx的官网上已经有了,这部分的东西我就不多说了,直接拉个链接给你们,打打基础再看我写的东西吧:

Quick-Cocos2d-x v3.3小白书系列教程

Quick-Cocos2d-x初学者游戏教程

看完这两个教程,基本上你对cocos2dx-quick就有个基础了解

好接下来我要说教程上没说,但是有可能同学们会比较困惑的一些地方啦

首先,我们说的代码结构都以qucik-cocos2dx建立的代码结构来进行说明(其实用cocos命令建立的结构也是差不多)

疑惑一:有很多直接addTo、move等方法,我在cocos2dx的API中没找到啊,它们在哪里?

答:在src/cocos/framework/extends里面,有很多类似NodeEx.lua的文件,就是在这里啦,quick在这里对一些常见的类进行了一些方法的扩充,使得我们的代码简化了

疑惑二:有个什么class的用来创建类的,我在哪里可以看到它的源码?

答:在src/cocos/cocos2d/functions.lua文件里

lua没有类的语法,但是cocos2dx利用类的概念跟lua的特性模拟了类的实现,

实现你们都看到了,在一开始定义一个本地变量:

local cc = class("Test")

然后实现方法:

function cc:method()

...

end

最后返回最开始的变量:

return cc

疑惑三:你怎么知道这些东西的?

答:首先出错时看编译器的提示,里面的debug.strace会说哪个lua脚本出错的,然后再看看quick中的lua源代码,最后唯有百度咯(很多我也是最后百度= =)

好,先写到这里,写本文的时候我也是边学边写的状态,所以写出来的都不是经验之谈,但是我仍然希望能对你有帮助,下次我将写一些开发中遇到的问题,以及我的解决方法跟大家共享,谢谢各位

时间: 2024-10-13 03:56:17

cocos2dx-lua开发旅程(一)的相关文章

cocos2d-x+lua开发模式下编辑器的选择

原本打算直接用CocosIDE的,毕竟是官方出品,而且支持Android远程调试,windows下的调试也很方便,调试的信息也很全,智能提示也不错.好了,一切看上去很完美,但是它有一个致命缺陷,就是继承了eclipse一贯的特性--"卡".基于java写的eclipse我一直使不惯,一方面是快捷键跟vs迥异,而我又懒得去配置(如果他能像IntelliJ IDEA一样,可以方便的删除重复快捷键,我还有兴致去配置一下,但是重复的快捷键没有任何提示,只是在使用的过程中会有各种问题),另一方面

sublime_text 2.0.2 绑定cocos2dx lua 开发游戏

1:下载sublime 2: 打开sublime 按 ctrl + ` 或者 view ---> show console 在控制台里输入 [plain] view plain copy import urllib2,os; pf='Package Control.sublime-package'; ipp=sublime.installed_packages_path(); os.makedirs(ipp) if not os.path.exists(ipp) else None; urlli

第一个Cocos2d-x Lua游戏

我们的编写的第一个Cocos2d-x Lua程序,命名为HelloLua,从该工程开始学习其它的内容.创建工程我们创建Cocos2d-x Lua工程可以通过Cocos2d-x提供的命令工具cocos实现,但这种方式不能与Cocos Code IDE集成开发工具很好地集成,不便于程序编写和调试.由于Cocos Code IDE工具是Cocos2d-x开发的专门为Cocos2d-JS和Cocos2d-x Lua开发设计的,因此使用Cocos Code IDE工具很方便创建Cocos2d-x Lua工

cocos2d-x lua 中使用protobuf并对http进行处理

本文介绍 cocos2d-x lua 中使用http 和 基于cocos2d-x 对lua http的封装(部分ok) 本博客链接 http://blog.csdn.net/vpingchangxin/article/details/24458051 protobuf  Google的一个非常好用的数据传输的封装 说实话Google的东西确实比較好用 所以我们前后端数据交换就用他了 只是Google没有对lua进行支持 还好社区有开源的大侠们贡献 找了全部关于lua protobuf 我仅仅找到

cocos2dx lua 热加载实现

[Q]原创 2015-08-30 在公司使用cocos2dx+lua 开发游戏有一段时间了,刚好lua的热更新交给我负责.以前热更新的lua脚本大部分都是在下载之后加载.最近策划又有新需求,需要在游戏过程进行如果有热更新需要提醒用户,也意味着在内存里的lua文件可能不是最新的.后来查到http://www.2cto.com/kf/201411/351833.html此博客发现lua原来加载到了一个package.loaded的缓存中,只要相应的将此设为空并require即可. 后来也就按照该博客

cocos2d-x + Lua接入iOS原生SDK的实现方案[转]

相信很多朋友在使用cocos2d-x+lua开发游戏时都遇到过接入iOS原生SDK的问题,比如常见的接应用内支付SDK,广告SDK或是一些社交平台SDK等等,我也没少接过这类SDK.这篇文章主要是对我做过项目中接入iOS原生SDK实现方案的一个总结,在这里分享给大家,希望对自己和大家的开发工作都有帮助. 在展开正文之前,先做几点说明: 1.我这里说的iOS原生SDK是指那些完全用Objective-C语言开发,为原生iOS程序设计的SDK.swift很好很强大,不过我还没用过,惭愧,不过语言终归

[原创]cocos2d-x + Lua接入iOS原生SDK的实现方案

相信很多朋友在使用cocos2d-x+lua开发游戏时都遇到过接入iOS原生SDK的问题,比如常见的接应用内支付SDK,广告SDK或是一些社交平台SDK等等,我也没少接过这类SDK.这篇文章主要是对我做过项目中接入iOS原生SDK实现方案的一个总结,在这里分享给大家,希望对自己和大家的开发工作都有帮助. 在展开正文之前,先做几点说明: 1.我这里说的iOS原生SDK是指那些完全用Objective-C语言开发,为原生iOS程序设计的SDK.swift很好很强大,不过我还没用过,惭愧,不过语言终归

Cocos2d-x lua游戏开发之安装Lua到mac系统

注意:mac ox ,lua version :5.15 下载lua官网的lua, 注意:最好是5.15以下,5.2的lua不支持table的getn()方法,这让我情何以堪.(获取table长度,相当与cout,size,length) 下载解压, cd 目录 make macosx sudo make install (是的,就是小写的install,虽然文件夹下的是INSTALL) ook,进入命令行,输入lua 看下,效果 Cocos2d-x lua游戏开发之安装Lua到mac系统,布布

win平台下搭建cocos2dx 3.1.1 lua开发环境 VS2012+sublime text+lua 5.2.3

安装vs2012 安装python 2.7.3和环境配置 下载cocos2dx 3.1.1 用vs2012打开test项目 右键运行生成解决方案  cocos2dx3.1.1 新建lua项目 cocos2dx 3.1.1引擎目录依次找到tools cocos2d-console bin,  把cocos.py拖到在dos的command(cmd)中 然后继续输入新建项目的信息: new game -p com.test.app  -l lua 我们这就可以在屏幕中提示的路径找到新建的项目game

Windows10下,cocos2dx+lua+sublime Text 开发环境搭建

楼主技术小白一只,在搭建cocos2dx的开发环境时,在网上搜索了一堆资料和很多大神分享的文章,然后就自己动手做了.可能是操作系统,或者vs的版本问题,发现了一些奇葩问题,搭建完成后,决定把它们写下来,希望能帮助到未来的自己和有同样困惑的朋友们. 一.下载并安装visual studio ,下载和安装步骤可以直接在网上搜索教程.我下载的是vs2015,为了避免漏掉什么功能,我选择了全部安装. 二.在官网上下最新的lua包,教程可参考: https://jingyan.baidu.com/arti