导航:首页 > 编程语言 > cocos2d引擎源代码

cocos2d引擎源代码

发布时间:2023-05-16 12:40:02

❶ cocos2d的历史起源

1973年,Ricardo Quesada出生于阿根廷。
在Ricardo 12岁时,他母亲为他购买了第一台电脑,一台Commodore 64。
刚开始,与其他孩子一样,Ricardo将自己的精力放在电子游戏上,但在几个月后,他购买了编程方面的书籍,开始学习用BASIC语言编写一些简单的游戏。两年后,Ricardo开始学习汇编语言。
在Commodore 64上,Ricardo制作了很多游戏并贡献了一个游戏编辑器,而这台Commodore 64也陪伴了他长达6年之久。此后,Ricardo选择了iAPX 286作为他的新伙伴。在他学习了C语言举正后的几个月,Ricardo在DOS系统下编写了一些游戏Demo和一个游戏编辑器。
当然,他并不满足于此,随后Ricardo又开始涉足Linux系统,并将编辑器移植到Linux系统上,将汇编语言改成了C语言。Ricardo将Linux作为主要的操作系统用了很多年,并不断地为开源社区贡献代码。此后他与一些志同道合的朋友一起学习了C++以及Python语言,并参加了一些开发大赛。在大学期间,Ricardo选择了钟爱的计算机科学专业,并不断涉猎计算机安全、算法、游戏架构、OpenGL等大量书籍。 2005年,Ricardo和朋友萌生了用Python语言 “一星期编写一个游戏”的想法。在2005~2007年间,他们设计了许多种这样的游戏。值得注意的是,每次在设计一个新的游戏时,其游戏引擎都是重新开发的。
2008年2月,他们在阿根廷Córdoba市附近的Los Cocos,决定基于以前的开发经验,把技术进行整合,并组建了游戏引擎的原始开发团队。一个月后,第一版的游戏引擎诞生了,根据其诞生地取名为Los Cocos。一个月后Los Cocos引擎发布了0.1版,其名称从Los Cocos更名为Cocos2D。
团队将研究成果在PyCon 2008和EuroPython 2008上都做了展示,2008年正值乔布斯公布发展iphone游戏的想法,因此他们决定抓住商机,在2008年吵答槐6月宣布跟iPhone平台进行接轨,并在当月就公布了用Objective-C编写的Cocos2D for iPhone 0.1版,它与Python版的Cocos2D拥有相同的设计思路。截止到2008年12月,App Store上已有超过40个用Cocos2D引擎开发的游戏。
2009年,团队设计了Cocos2D的世界编辑器Cocos2D-Python,这款所见即所得的编辑器使用起来十分升友方便。此时,Cocos2D的各种平台、各种编程语言移植版也开始涌现。
ShinyCocos(Ruby bindings)、Cocos2D-Android(Java based)、cocosNet(Mono based)都诞生了。同时,英国的设计大师Michael Heald为Cocos2D设计了新的LOGO,如图1所示(此前Cocos2D的LOGO是一个奔跑的椰子)。

❷ 求cocos2d-x教程

cocos教程网络网盘免费资源在线学习

链接: https://pan..com/s/1lYZHKPPVuvBR4rddE1jasA

提取码: e2ht

cocos教程 极客学院Cocos2d-x源码 05_第5阶段 项目实战 04_第4阶段 功能扩展 03_第3阶段 常用功能 02_第2阶段 基础知识 01_第1阶段 环境搭建 5 使用Eclipse在Ubuntu下搭建Cocos2d-x 3集成开发环境 4 Cocos Code IDE使用 3 Windows环境下Visual Studio 2013中搭建Cocos2d-x 3.1集成开发环境 2 Cocos2d-x3.1rc0项目创建及新功能介绍 1 WinMac环境Cocos2d-x开发环境搭建 06. HelloWorld示例详解.webm 05. 在Mac平台编译成Android程序.webm 04. Mac平台开发环境搭建.webm


❸ 手机游戏用Cocos2d游戏引擎的开发代码如何保障不会被逆向破解

目前针对Cocos2d游戏引擎的开发代码防逆向主要是通过隐藏lua脚本文件,根据爱加密介绍,通过隐藏lua脚本文件,可以保护代码不被黑客给逆向,从而保护游戏逻辑的安全性。希望可以采纳,谢谢!

❹ cocos 2d-x的代码在cocos creator 中能运行吗

cocos 2d-x的代码在cocos creator 中能运行
Cocos2d-x只是一个游戏框架,并不局限于c++开发语言,其他主流编程语言都可以实现相应游戏开发。具体描述如下:
Cocos2d-x是一个开源的移动2D游戏框架,MIT许可证下发布的。这是一个C++ Cocos2d-iPhone项目的版本配磨。Cocos2d-X发展的重点是围绕Cocos2d跨平台,Cocos2d-x提供的框架。手机游戏,可以写在C++或者Lua中,使用API是Cocos2d-iPhone完全兼容模卖搜。Cocos2d-x项目可以很容易地建立和运行在iOS,Android,黑莓Blackberry等操作系统中。Cocos2d-x还支持Windows、Mac和Linux等桌面操作系统,因此,开发者编写的源代码很容易在桌面操作系统中编辑和调试。
Cocos2d-x是MIT许可证下发布的开源游戏引擎,游戏开发快速、简易、功能强大。2015年2月,触控科技正式推出了游戏开发一站式解决方案cocos,将Cocos 2d-x、Cocos Studio、Cocos Code IDE等框架及工具整合在一起。
Cocos2d-x核心优势在于允许开发人员利用C++、Lua及Javascript来进行跨平台部署,覆盖平台包括iOS、Android、Windows Phone、Windows, Mac OSX 3及Tizen等等,省事省力省成本。
Cocos2d-x用户不仅包括个人开发者和游戏开发爱好者,还包括许多知名大公司如Zynga、Wooga、Gamevil、Glu、GREE、Konami、TinyCo、HandyGames、IGG及Disney Mobile等。截止2013年9月,全球基于Cocos2d-x引擎的游戏下载量高达逾15亿,其中许多还占据苹果应用商店(AppStore)和谷歌应用商店(Google Play)排行榜。同时许多公司如触控、谷歌、微软、ARM、英特尔的工程师在Cocos2d-x领域也非常活跃。
另外,Cocos2d-x版本升级困难的问题,是许多开发者的一大苦恼,而经过整旦历合的cocos,解决了Cocos2d-x的这一问题。升级cocos,其相匹配的Cocos2d-x也将自动进行升级,这极大的提高了开发效率,为开发者们带来便利,同时也为Cocos2d-x的进一步发展打下基础。

❺ 如何在cocos2d c++代码中调用lua以及探究

如何在cocos2d c++代码中调用lua以及探究,有需要的朋友启穗可以参考下。

如何在cocos2d c++代码中调用lua

在AppDelegate 中加入了
#include"Lua_extensions_CCB.h"
#include"CCLuaEngine.h"
#include"Lua_web_socket.h"

查到代码加盯圆载lua脚步引擎
官方原话注册引凯旁塌擎
CCLuaEngine*pEngine=CCLuaEngine::defaultEngine();
CCScriptEngineManager::sharedManager()->setScriptEngine(pEngine);

和ccb有关的lua
CCLuaStack*pStack=pEngine->getLuaStack();
lua_State*tolua_s=pStack->getLuaState();
tolua_extensions_ccb_open(tolua_s);

和web_socket 相关的lua
pStack=pEngine->getLuaStack();
tolua_s=pStack->getLuaState();
tolua_web_socket_open(tolua_s);

pEngine->executeScriptFile("luaScript/controller.lua");
结束

打开luaScript/controller.lua仔细研究

-- avoidmemory leak
collectgarbage("setpause",100)
collectgarbage("setstepmul",5000)

require"luaScript/mainMenu"
----------------

-- run
local scene =CCScene:create()
scene:addChild(CreateTestMenu())
CCDirector:sharedDirector():runWithScene(scene)

到这里如果熟悉cocos2dx 的朋友就很熟悉了
不错,这里是cocos2d中lua的使用方法和c++中调用差别不大!

但是还没有完

Cocos2dx 对lua的封装是很好的!

如果不熟悉c++与lua的绑定的代码下面的不建议看
C++与lua的绑定传送门

关于cocos2d 与 lua绑定的代码的探究

//打开"CCLuaEngine.h"

单例实现CCScripEngineProtocol
后期应该支持不仅仅只是lua的脚本引擎

头文件有很多方法

挑一个看看
virtualintexecuteNodeEvent(CCNode*pNode,intnAction);

intCCLuaEngine::executeNodeEvent(CCNode*pNode,intnAction)
{
intnHandler=pNode->getScriptHandler();
if(!nHandler)return0;

switch(nAction)
{
casekCCNodeOnEnter:
m_stack->pushString("enter");
break;

casekCCNodeOnExit:
m_stack->pushString("exit");
break;

:
m_stack->pushString("enterTransitionFinish");
break;

:
m_stack->pushString("exitTransitionStart");
break;

casekCCNodeOnCleanup:
m_stack->pushString("cleanup");
break;

default:
return0;
}
intret=m_stack->executeFunctionByHandler(nHandler,1);
m_stack->clean();
returnret;
}

这里是进入CCNode后的一些消息函数的处理

不管
intret=m_stack->executeFunctionByHandler(nHandler,1);

最终是回到了CCLuaStack

调用了executeFunctionByHandler(nHandler,1);

继续探究

intCCLuaStack::executeFunctionByHandler(intnHandler,intnumArgs)
{
intret=0;
if(pushFunctionByHandler(nHandler)) /* L: ... arg1 arg2 ... func */
{
if(numArgs>0)
{
lua_insert(m_state,-(numArgs+1)); /* L: ... func arg1 arg2 ... */
}
ret=executeFunction(numArgs);
}
lua_settop(m_state,0);
returnret;
}

可以看到一些和lua与c++联系的代码了

看看这个类的初始化

boolCCLuaStack::init(void)
{
m_state=lua_open();
luaL_openlibs(m_state);
tolua_Cocos2d_open(m_state);
toluafix_open(m_state);

// Register our version of the global "print"function
constluaL_regglobal_functions[]={
{"print",lua_print},
{NULL,NULL}
};
luaL_register(m_state,"_G",global_functions);
tolua_CocoStudio_open(m_state);
#if(CC_TARGET_PLATFORM==CC_PLATFORM_IOS||CC_TARGET_PLATFORM==CC_PLATFORM_MAC)
CCLuaObjcBridge::luaopen_luaoc(m_state);
#endif
register_all_cocos2dx_manual(m_state);
register_all_cocos2dx_extension_manual(m_state);
register_all_cocos2dx_studio_manual(m_state);
// add cocos2dx loader
addLuaLoader(cocos2dx_lua_loader);

returntrue;
}

这个里的方法看名称应该是注册 coco2dx 中的类到
C++中

register_all_cocos2dx_manual(m_state);
register_all_cocos2dx_extension_manual(m_state);
register_all_cocos2dx_studio_manual(m_state);

详细看
Coco2dx-studio 先不看

头文件
lua_cocos2dx_manual.h

#ifdef__cplusplus
extern"C"{
#endif
#include"tolua++.h"
#ifdef__cplusplus
}
#endif

LUA_APIintregister_all_cocos2dx_manual(lua_State*tolua_S);

头文件
lua_cocos2dx_extensions_manual
#ifdef__cplusplus
extern"C"{
#endif
#include"tolua++.h"
#ifdef__cplusplus
}
#endif

LUA_APIintregister_all_cocos2dx_extension_manual(lua_State*tolua_S);

惊人的相似
看看tolua++.h
真相快水落石出了

这里定义了lua所以用到全部函数

这里是头部,
/* tolua
** Support code for Lua bindings.
** Written by Waldemar Celes
** TeCGraf/PUC-Rio
** Apr 2003
** $Id: $
*/

/* This code is free software; you can redistributeit and/or modify it.
** The software provided hereunder is on an"as is" basis, and
** the author has no obligation to providemaintenance, support, updates,
** enhancements, or modifications.
*/

原来tolua也是lua封装起来的函数库,大师2003 4月就写好了
相当的牛

好上面只看了lua_cocos2dx_extensions_manual.h的头文件
cpp文件我们也一看详情
我发现注册了一些函数
但是不是全部

在CCLuaStack::init()
方法里还有
tolua_Cocos2d_open(m_state);
这个方法
相应的头文件是LuaCocos2d..h
可以打开看看详情

Luacocos2d..cpp注册了n多函数
我用注册是相对于lua而言

Luacocos2d.cpp代码贼多
有兴趣的童鞋可以看看

看来什么时间要看看cocos2d studio 的代码
紧跟时代的步伐
不能老是cocos builder

❻ cocos2d的历史起源

2005年,Ricardo和朋友萌生了用Python语言
“一星期编写一个游戏”的想法。在2005~2007年间,他们设计了许多种这样的游戏。值得注意的是,每次在设计一个新的游戏时,其游戏引擎都是重新开发的。
2008年2月,他们在阿根廷Córdoba市附近的Los
Cocos,决定基于以前的开发经验,把技术进行整合,并组建了游戏引擎的原始开发团队。一个月后,第一版的游戏引擎诞生了,根据其诞生地取名为Los
Cocos。一个月后Los
Cocos引擎发布了0.1版,其名称从Los
Cocos更名为Cocos2D。
团队将研究成果在PyCon
2008和EuroPython
2008上都做了展示,2008年正值乔布斯公布发展iPhone游戏的想法,因此他们决定抓住商机,在2008年6月宣布跟iPhone平台进搭稿行接轨,并在当月就公布了用Objective-C编写的Cocos2D
for
iPhone
0.1版,它与Python版的Cocos2D拥有相同的设计思路。截止到2008年12月,App
Store上已有超过40个用Cocos2D引擎开发的游戏。
2009年,团队设计了Cocos2D的世界编辑器Cocos2D-Python,这款所见即所运蔽得的编辑器使用起来十分方便。此时,Cocos2D的各种平台、各种编程语言移植版也开始涌现。
ShinyCocos(Ruby
bindings)、Cocos2D-Android(Java
based)知悄孝、cocosNet(Mono
based)都诞生了。同时,英国的设计大师Michael
Heald为Cocos2D设计了新的LOGO,如图1所示(此前Cocos2D的LOGO是一个奔跑的椰子)。
cocos2d是一个基于MIT协议的开源框架,用于构建游戏、应用程序和其他图形界面交互应用。可以让你在创建自己的多平台游戏时节省很多的时间。
Cocos2D也拥有几个主要版本,包括Cocos2D-iPhone、Cocos2D-X,以及被社区普遍看好的Cocos2D-HTML5和JavaScript
bindings
for
Cocos2D-X。同时也拥有了非常优秀的编辑器(独立编辑器),例如SpriteSheet
Editors、Particle
Editors
、Font
Editors

Tilemap
Editors。
另外,2012年发布的CocoStudio工具集是开源游戏引擎Cocos2d-x开发团队官方推出的游戏开发工具,目前已经进入稳定版。CocoStudio吸取了他们自己在游戏制作中的经验,为移动游戏开发者和团队量身定做,旨在降低游戏开发的门槛,提高开发效率,同时也为Cocos2D-X的进一步发展打下基础。

❼ Cocos Creator 引擎源码调试、修改

Cocos Creator 的引擎部分包括 JavaScript 、 Cocos2d-x-lite 和 adapter 三个部分,各部分对应源码在(氏租Mac 版):

JavaScript:CocosCreator.app/Resource/engine(js 引擎)
Cocos2d-x-lite:CocosCreator.app/Resource/cocos2d-x(Cococ2d-x 引歼纤兆竖物擎)
adapter:CocosCreator.app/Resource/builtin/

❽ 请教Cocos Code IDE 的userDefault存放位置

这是 cocos2d-x 引擎里面定的型睁,最新的版本是在各个平台笑让的 writablepath 里面卜升岁
建议看一下引擎源代码中存取 UserDefault.xml 的函数

❾ 自学cocos2d js游戏开发应该按什么步骤进行

跟你简要说一下我的自学路,以免你走弯路

背景:
有工作,而且很忙;在不影响工作基础上用业余时间鼓捣(经常会因为工作耽搁学习进度);基本没技术背景(初中qbasic、高中pascal半吊子),大学文科,工作也不是搞代码。因此我感觉我的自学路跟你还是挺契合的。

1
两年前的一天,决定要做独立游戏制作人。选定引擎cocos2d,开始学习objective-c语言;(如果你打算只在iOS平台开发可以学obj-c配合cocos2d或者sprite kit;如果打算跨平台就要用cocos2d-x和c++了;当然unity什么的也不错但是我还没尝试过,一直很向往)

2
我跳过了iOS程序开发(似懂非懂看完了斯坦福那一系列的教学视频),结合当时情况直接选择了cocos2d引擎,这时开始接触 @吴一刀 推荐的博客;我主要看的是子龙山人<子龙山人 - 博客园>、Ray Wenderlich<Ray Wenderlich>、Himi<黑米GameDev街区>这些博客里最基本的例子,知易那个以我当时的水平还看不懂。

3
尝试开始设计自己的简单游戏,我做打地鼠!当然比教学例子里的打地鼠复杂多了

4
这个过程中发现自己懂的实在是不够,所以又开啃这本书:Learn cocos2d 2 by Steffen Itterheim & Andreas Low

5
慢慢的发现需要一些趁手的工具和编辑器,并发展出一套自己构建于cocos2d之上的游戏设计架构。我目前的情况是这样:

关卡编辑我使用plist文件配合自己写的类;

sprite sheet使用TexturePacker<TexturePacker>;

动画/UI编辑最初自己手写太累,后来选择了cocosbuilder,请注意现在这个软件已经停止维护,转而引导用户使用SpriteBuilder<SpriteBuilder>(域名都做了自动跳转;SpriteBuilder我木有研究过,建议你研究一下)。

粒子编辑我自己还没实际用到,如果真正需要我感觉cocosbuilder的够我用的。//更新:后来用到了ParticleDesigner和cocosbuilder两个软件的粒子编辑混搭

我当时遇到的一个大麻烦是如何让cocosbuilder、cocos2d版本互相兼容且cocosbuilder无问题。大概情况是这样:cocosbuilder2.1和cocos2d-iphone2.0及2.1版本都不协调怎么办?;What version of Cocosbuilder and Cocos2d-iphone should I choose?

目前我使用的cocosbuilder 2.1版本(渐变层有bug、并且很可惜动画播放完没有触发消息的机制,我只好把每个动画时长都手动记录一下自己处理)

======3月12日更新======
在 @GarfieldKwong 指点下发现这个版本动画播放完是可以触发消息机制的,更高级版本3.x支持的效果应该是在动画中就加入callback的关键帧
新技能get√

具体代码可见下面学习案例的第一个例子里Explosion部分
=====================

cocosbuider的学习可以看两个例子Creating a Game with CocosBuilder;Introction to CocosBuilder;然后就是多用多尝试。

6
整个学习过程要学会查资料、学会寻求帮助,我主要用的stackoverflow(话说刚刚发现stackoverflow的reputation喜过15,终于可以投票了:)

在学习过程中得到了子龙山人(我认为本尊是这位 @屈光辉 )、LearnCocos2d作者Steffen、 @kubisoft 以及众多网上朋友的帮助,再次表示感谢。

7
硬件及开发者资格:看完c++开始看obj-c,这个过程一直是使用的vmware虚拟机安装的mac系统写程序;然后入手一个最便宜的mac pro、以及iPhone,尝试玩各种游戏;从看c++开始大约过了1年半(已经有非常简陋的游戏demo)才真正购入iOS开发者资格并开始真机测试。

8
尝试过的一些其他工具、各种弯路和坑、以及发散内容:
可以拖拽方式写代码的stencyl <Stencyl: Make iPhone, iPad, Android & Flash Games without code>;
最初学的不是ojc-c而是谭浩强老师的c++程序设计(虽然有人不喜谭老师,但那书是中文的让我对面对对象程序设计有一些初步的概念,再看英文的obj-c不至于太摸不着头脑,反正手头正好有这么一本买了6年没看的c++。。。);
尝试过<Tiled Map Editor>但自己目前的坑没有用到;
尝试过一点物理引擎和粒子,但自己目前的坑没有用到;现在粒子用到了,做了火焰等效果,也挺美的;但是一定要注意CPU占用优化,内存方面我最低支持4S没遇到大问题

学习音乐制作,这个我小时候学琴一直也喜欢音乐所以有一点点底子,如果没有基础可能上手有门槛;开始用的软件LMMS,但是音源插件在64位系统的问题我一直没解决掉时间精力也不多,所以是暂时停滞了;最近发现Garage Band可能也可以写歌;另外还试过一个很有历史的微软的音乐自动编辑器,很好玩,用来做背景音乐也不错。

入手手绘板学画画(这中间纠结了好久才决定用位图不用矢量图),如果你能找到热爱游戏的美术同学一起搞那最好不过。但是我一直对画画心痒难搔。。。所以入了这个深坑,晒一晒:
转载
z

阅读全文

与cocos2d引擎源代码相关的资料

热点内容
java会出现内存泄露么 浏览:617
苹果4s锁屏后怎么还显示歌曲 浏览:207
鸿蒙系统文件管理哪些可以删除 浏览:550
ubuntuqt创建工程没有配置文件 浏览:126
网站登录变成其他网站怎么处理 浏览:202
ug数控编程学校有哪些 浏览:203
java图片上传显示 浏览:402
ppt的文件名后缀 浏览:902
ug编程软件下载到哪个盘 浏览:359
炫酷字体APP下载的文件在哪里 浏览:668
廊坊哪里有少儿编程机构 浏览:312
cad新文件能找回来吗 浏览:951
导出手机qq文件到u盘 浏览:456
电脑如何打开ppt文件怎么打开方式 浏览:782
魅族锁定区文件夹 浏览:357
刻字cnc怎么编程 浏览:182
学校的网络拓扑结构图 浏览:784
收集100个pdf文件里关键词 浏览:594
苹果关闭4g网络设置 浏览:289
如何监测数据库 浏览:967

友情链接