最近大部分空余时间都在开始学习cocos2d游戏开发相关技术,作为一个游戏行业菜鸟级别的选手,我觉得基础很重要,所以我决定从cocos2dx启动流程和快平台原理开始!
注:这里只针对Lua做相关介绍,为什么是Lua,有过cocos2dx经验的朋友应该都知道Lua小,快,简单,而且比较大众化,而C++就不多多说了,大部分程序员都有畏惧心理,当然也有一些C++比较好,或者有独特爱好和专研朋友!
关于其他平台基本上的流程和原理其实是一样的,可以直接参考!
什么是Lua
百科:Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。
Lua由标准C编写而成,几乎在所有操作系统和平台上都可以编译,运行。Lua并没有提供强大的库,这是由它的定位决定的。所以Lua不适合作为开发独立应用程序的语言。
Lua 有一个同时进行的JIT项目,提供在特定平台上的即时编译功能。
很多应用程序、游戏使用LUA作为自己的嵌入式脚本语言,以此来实现可配置性、可扩展性。这其中包括魔兽世界、博德之门、愤怒的小鸟、QQ三国、VOCALOID3、太阳神三国杀、游戏王ygocore等。
Cocos2d-lua,其实只是Cocos2d引擎添加了Lua绑定的版本。
Cocos2d这里就不解释了,懒得拷贝,只是关于cocos创建和使用的时候需要注意的是
cocos new TestProj -d Desktop/ -l lua,这里的引擎其实是同一套,只是创建工程时提供了不同语言的桥接层
使用C++语言和Cocos2d-x引擎进行开发时,我们写的代码是直接调用引擎的API的,因为引擎也是用C++语言编写,不需要进行语言转换
使用Lua语言和Cocos2d-x引擎进行开发时,我们写的代码通过LuaEngine执行,而LuaEngine封装了Cocos2d-x引擎的API,所以就相当于使用Lua脚本在调用Cocos2d-x的API了
各个平台的入口
iOS
#import
int main(int argc, char *argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
int retVal = UIApplicationMain(argc, argv, nil, @"AppController");
[pool release];
return retVal;
}
Mac OS
#import