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源代码,最后唯有百度咯(很多我也是最后百度= =)


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



Cocos2dx 3.12 Lua开发环境搭建_01

本文记录在 Windows 下搭建 cocos2dx lua 开发环境,还有调试设置。 系统:Windows 7 64 IDE:Mircrosoft Visual Studio 2013 Cocos2...
  • yuan2053
  • yuan2053
  • 2017年03月08日 10:22
  • 3522

如何优雅进行 cocos2dx + lua 开发

本人使用的是 Cocos2dx 3.4 + Visual studio 2013 一、IDE 的选择         visual studio 2013 + Bebalua (visual st...
  • xzben
  • xzben
  • 2016年04月14日 15:47
  • 643

cocos2d-x lua 贪吃蛇完整项目

cocos2d-x lua 贪吃蛇游戏 一步一步开发学习 本文地址: http://blog.csdn.net/qq_26437925/article/details/51842647开发环境,项目...
  • qq_26437925
  • qq_26437925
  • 2016年07月06日 21:53
  • 6580

Cocos2d-x之LUA脚本引擎深入分析

[Cocos2d-x相关教程来源于红孩儿的游戏编程之路CSDN博客地址:http://blog.csdn.net/honghaier 红孩儿Cocos2d-X学习园地QQ3群:205100149...
  • honghaier
  • honghaier
  • 2013年03月21日 12:18
  • 40312

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

本站文章均为 李华明Himi 原创,转载务必在明显处注明:转载自【黑米GameDev街区】 原文链接: http://www.himigame.com/iphone-cocos2dx/681.html...
  • xiaominghimi
  • xiaominghimi
  • 2012年04月16日 10:08
  • 78228

cocos2dx-lua里面class的实现的一些问题记录和思考

首先要理解lua的class,要先理解metatable的作用和__index以及lua调用table里面的函数的时候搜索函数的逻辑: 1、直接当前表里面搜索函数 如果存在,直接调用,不存在继续 ...
  • sydnash
  • sydnash
  • 2016年04月14日 14:41
  • 2113

初学cocos2dx lua

最基本的层 function createInGameLayer() local inGameLayer = cc.Layer:create() return inG...
  • w18767104183
  • w18767104183
  • 2014年03月13日 16:52
  • 16053

cocos2dx 3.4 lua学习一个简单的小例子

1.环境 cocos2d 3.4 编译器 cocosidehttp://cn.cocos2d-x.org/tutorial/show?id=1069跟着这篇文章进行学习 不过有几个地方会不同 具体看代...
  • maxiaosheng521
  • maxiaosheng521
  • 2015年03月28日 12:58
  • 941

cocos2dx 3.3 + lua 学习笔记(01)--- math库

lua中 math库 的应用如下 Lua 常用的生成随机数需要用到两个函数: math.randomseed(xx), math.random([n [, m]]) 1. math.randoms...
  • zwg739424406
  • zwg739424406
  • 2016年03月31日 10:34
  • 1894

cocos2dx是怎么使用lua引擎的

第一步:看cocos2dx调用lua的最初切入点: bool AppDelegate::applicationDidFinishLaunching() { CCDirector *pDirec...
  • xiaogou56a
  • xiaogou56a
  • 2015年02月28日 17:10
  • 1991
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:cocos2dx-lua开发旅程(一)
举报原因:
原因补充:

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