cocos2dx-lua开发旅程(一)

原创 2015年03月05日 16:37:49

最近要做一个手游项目,打算用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源代码,最后唯有百度咯(很多我也是最后百度= =)


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



版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Cocos2d-x-Lua示例项目HelloLua

Cocos2d-x-Lua示例项目HelloLua 本篇博客介绍Cocos2d-x中Lua的实例项目,就是使用Cocos2d-x创建的初始项目运行所呈现的农场,这里笔者取名为HelloLua。本篇博客...

Cocos2d-x 脚本语言Lua的使用

Cocos2d-x 脚本语言Lua的使用前面几篇博客已经把Lua的相关基础知识介绍了,本篇博客就来介绍一下,如何在Cocos2d-x项目中使用Lua这门脚本语言进行开发。由于笔者使用的时Mac系统,所...

在linux上搭建lua开发环境

1.获取lua源码 源码下载地址:http://www.lua.org/download.html 我下载的版本是:lua-5.3.4 2.解压lua源码 tar xvf lua-5.3.4.ta...

Cocos2d-x 脚本语言Lua介绍

Cocos2d-x 脚本语言Lua介绍本篇博客记录Lua学习,学习来自eoe论坛,Lua语言开发Cocos2d-x游戏入门视频教程,猛戳以下地址:http://www.eoeandroid.com/t...

Cocos2d-x 脚本语言Lua基本数据结构-表(table)

Cocos2d-x 脚本语言Lua基本数据结构-表(table) table是Lua中唯一的数据结构,其他语言所提供的数据结构,如:arrays、records、lists、queues、sets等,...

Cocos2d-x 脚本语言Lua基本语法

Cocos2d-x 脚本语言Lua基本语法

【COCOS2DX-LUA 脚本开发之一】在Cocos2dX游戏中使用Lua脚本进行游戏开发(基础篇)并介绍脚本在游戏中详细用途!

本站文章均为 李华明Himi 原创,转载务必在明显处注明:转载自【黑米GameDev街区】 原文链接: http://www.himigame.com/iphone-cocos2dx/681.html...

Cocos2d Lua开发环境完全搭建

visual studio 2013下 搭建cocos2d lua的开发和调试环境

Cocos2d-x 脚本语言Lua中的面向对象

Cocos2d-x 脚本语言Lua中的面向对象 面向对象不是针对某一门语言,而是一种思想,在面向过程的语言也可以使用面向对象的思想来进行编程。在Lua中,并没有面向对象的概念存在,没有类的定义和子类的...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)