什么是cocos2d tinttotoudio做的游戏

cocos2d-x_百度百科
Cocos2d-x是一个开源的移动2D游戏框架,MIT许可证下发布的。这是一个C++ Cocos2d-iPhone项目的版本。Cocos2d-X发展的重点是围绕Cocos2d跨平台,Cocos2d-x提供的。手机游戏,可以写在C++或者Lua中,使用API是Cocos2d-iPhone完全兼容。Cocos2d-x项目可以很容易地建立和运行在iOS,Android,黑莓Blackberry等操作系统中。Cocos2d-x还支持、和等桌面操作系统,因此,开发者编写的源代码很容易在桌面操作系统中编辑和调试。
Cocos2d-x是MIT许可证下发布的开源游戏引擎,游戏开发快速、简易、功能强大。2015年2月,触控科技正式推出了游戏开发一站式解决方案cocos,将Cocos 2d-x、Cocos Studio、Cocos Code IDE等框架及工具整合在一起。[1]
Cocos2d-x核心优势在于允许开发人员利用C++、Lua及Javascript来进行跨平台部署,覆盖平台包括iOS、Android、Windows Phone、Windows, Mac OSX 3及Tizen等等,省事省力省成本。[2]
Cocos2d-x用户不仅包括个人开发者和游戏开发爱好者,还包括许多知名大公司如Zynga、Wooga、Gamevil、Glu、GREE、Konami、TinyCo、HandyGames、IGG及Disney Mobile等。截止2013年9月,全球基于Cocos2d-x引擎的游戏下载量高达逾15亿,其中许多还占据苹果应用商店(AppStore)和谷歌应用商店(Google Play)排行榜。同时许多公司如触控、谷歌、微软、、的工程师在Cocos2d-x领域也非常活跃。
另外,Cocos2d-x版本升级困难的问题,是许多开发者的一大苦恼,而经过整合的cocos,解决了Cocos2d-x的这一问题。升级cocos,其相匹配的Cocos2d-x也将自动进行升级,这极大的提高了开发效率,为开发者们带来便利,同时也为Cocos2d-x的进一步发展打下基础。
易于使用:游戏开发者可以把关注焦点放在游戏设置本身,而不必消耗大量时间学习晦涩难懂的OpenGL ES,此外,Cocos2d-x还提供了大量的规范。
高效:Cocos2d-x基于OpenGL ES进行图形渲染,从而让移动设备的GPU性能发挥到极致。
灵活:方便扩展,易于集成第三方库。
免费:基于MIT协议的免费开源框架,用户可以放心使用,不用担心商业授权的问题。
社区支持:关心Cocos2d-x的开发者自发建立了多个社区组织,可以方便的查阅各类技术资料。[3]
cocos2d是一个基于MIT协议的开源框架,用于构建游戏、应用程序和其他图形界面交互应用。可以让你在创建自己的多平台游戏时节省很多的时间。
Cocos2d也拥有几个主要版本,包括Cocos2d-iPhone、Cocos2d-X,以及被社区普遍看好的Cocos2d-HTML5和JavaScript bindings for Cocos2d-X。
Cocos2d-html5 : Cocos2d-HTML5 是基于 HTML5 规范集的 Cocos2d引擎分支,具有跨平台的能力和强大的性能,是 Cocos2d 系列引擎随着互联网技术演进而产生的一个分支,该分支基于 HTML5 规范集,目标是可对游戏进行跨平台部署,Cocos2d-HTML5 采用 MIT 开源协议,设计上保持Cocos2d家族的传统架构,并可联合 Cocos2d-x JavaScript-binding 接口,最大程度地实现游戏代码在不同平台上的复用。
JSB :Cocos2d-x JavaScript-binding 是使用 SpiderMonkey 引擎实现 C++ 接口到 JavaSciprt 的绑定方案,它可以使用 Js 快速开发游戏,以更简单的语法实现功能,并且能与 Cocos2D-HTML5 相互兼容,使同一套代码,运行两个平台,这是相比使用 Lua 实现的一个明显优势。
Cocos Studio :Cocos Studio 是一套基于 Cocos2d-x 引擎的工具集,包括 UI编辑器,动画编辑器,场景编辑器和数据编辑器。 UI 编辑器和动画编辑器主要面向美术,而场景编辑器和数据编辑器则面向游戏策划,这四个工具合在一起构成了一套完整的游戏开发体系,帮助开发者进一步降低开发难度,提高开发效率,减少开发成本。[4]
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等大量书籍。
Cocos2d的诞生
2005年,Ricardo和朋友萌生了用Python语言 “一星期编写一个游戏”的想法。在年间,他们设计了许多种这样的游戏。值得注意的是,每次在设计一个新的游戏时,其游戏引擎都是重新开发的。
2008年2月,他们在阿根廷Córdoba市附近的Los Cocos,决定基于以前的开发经验,把技术进行整合,并组建了游戏引擎的原始开发团队。一个月后,第一版的游戏引擎诞生了,根据其诞生地取名为Los Cocos。一个月后Los Cocos引擎发布了0.1版,其名称从Los Cocos更名为Cocos2d。[4]
流程控制(Flow control):非常容易地管理不同场景(scenes)之间的流程控制
精灵(Sprites):快速而方便的精灵
动作(Actions):告诉精灵们该做什么。可组合的动作如移动(move)、旋转(rotate)和缩放(scale)等更多
特效(Effects):特效包括波浪(waves)、旋转(twirl)和透镜(lens)等更多
平面地图(Tiled Maps):支持包括矩形和六边形平面地图
转换(Transitions):从一个场景移动到另外一个不同风格的场景
菜单(Menus):创建内部菜单
文本渲染(Text Rendering):支持标签和HTML标签动作
文档(Documents):编程指南 + API参考 + 视频教学 + 很多教你如何使用的简单测试例子
BSD许可:尽管用就是了
基于Pyglet:没有外部的依赖
基于OpenGL:支持硬件加速[3]
架构和目录结构
cocos2d-x引擎架构
目录结构:
从github下载Cocos2d-x repo资源包后,或解压稳定版ZIP压缩包后,就会看到如下的目录结构:
CocosDenshion
音频支持。注意:Android平台中背景音乐和短音效所使用的系统API不同。
Cocos2d-x框架的主目录。
你可以下载doxygen文档系统,利用该系统打开本文档文件夹内的doxygen.config文件,然后再生成离线API文档。
extensions
如果需要更多图形用户界面的控制功能、网络访问、CocosBuilder支持甚至2.5D功能,你可以使用using namespace cocos2d::extension。
包括box2d及Chipmunk库。
cocos2d依赖很多其他开源项目。所有授权许可文件都在这个目录。
重要!这是你该开始用到的文件。从Cpp/HelloCpp开始学习,你会在TestCpp中发现所有类的用法。lua和js样本也在这个目录。
我知道你不喜欢C++,写起来太复杂。没问题,我们有Lua和Javascript。Scripting文件夹包括来自火狐的lua官方引擎和SpiderMonkey引擎。
该目录包括在不同集成开发环境及不同平台中创建Cocos2d-x新项目的模板。这里汇集了数量庞大覆盖各种开发环境和平台的模板!
包括将C++绑定至lua及javascript的脚本文件。
作者修订记录文档。
cocos2d-win32.vc2010.sln
配套Visual Studio 2010打开。注意:VS 2008自Cocos2d-x v2.0版本以来就不再支持。
cocos2d-win32.vc2012.sln
配套Visual Studio 2012打开。
create-android-project.bat
在Windows平台运行。具体用法请参考如何用脚本创建Android项目。
create-android-project.sh
在Linux或OS X平台运行。具体用法请参考如何用脚本创建Android项目。
install-templates-msvc.bat
执行该文件安装后,你可以在Visual Studio中创建空的Cocos2d-x项目。
install-templates-xcode.sh
执行该文件安装后,你可以在Xcode中创建空的Cocos2d-x项目。
目前,占有率领先移动游戏引擎主要有Cocos2d-x、Unity3D、FlashAIR、Unreal、Corona等。不同的统计方给出的数据各有差异,但总体来讲,行业首选的游戏引擎,主要都集中在Cocos2d-x与Unity3D之上。
从全球市场份额数据来看,主要覆盖中端市场的Unity相对领先,Cocos2d-x则主要占据高端与低端市场,约占1/4市场。但值得注意的是另一个数据是,在中国,Cocos2d-x则相对领先。在中国的2D手机游戏开发中,Cocos2d-x引擎的份额超过70%。
根据触控科技数据,国内现有45款月收入超千万手游中,30个基于Cocos2d-x开发,2013年手机游戏产业的22起手游并购案中,收购股权大于51%20起,其中13起的代表游戏均基于Cocos2d-x开发。
注:截至日数据更新,国内已有47款月收入超千万手游,其中32款基于Cocos2d-x开发。[2-3]
目前,Cocos2d-x, Cocos2d-html5及Cocos Studio由触控科技提供财力支持。[1]
.Cocos[引用日期]
.网易新闻网[引用日期]
.太平洋游戏网[引用日期]
.新浪[引用日期]cocos2dx 3.0 用ClippingNode做游戏的新手引导 - Bill Yuan - 博客园
本篇介绍的是用ClippingNode 做游戏的新手引导,额,或者说是做新手引导的一种可尝试的方式。ClippingNode的解释,我盗用Jacky的话来说就是:CCClipingNode是一个可裁剪节点,简单理解: (1)首先它是一个节点,继承于CCNode,所以它可以像普通节点一样放入CCLayer,CCScene,CCNode中。 (2)作为节点,它就可以用作容器,承载其他节点和精灵。我把它叫底板。 (3)如果想要对一个节点进行裁剪,那需要给出裁剪的部分,这个裁剪区域,我把它叫模版。 所以CCClipingNode裁剪节点在组成上=底板+模版,而在显示上=底板-模版。不知道这样解释会不会好理解一点。
具体的用法,请看大屏幕:
1、假如游戏的开始,游戏界面就只有一个button,点击它可以显示出&Welcome to star blog!&,代码实现如下:
Size visibleSize = Director::getInstance()-&getVisibleSize();
Point origin = Director::getInstance()-&getVisibleOrigin();
auto closeItem = MenuItemImage::create(
"CloseNormal.png",
"CloseSelected.png",
CC_CALLBACK_1(HelloWorld::menuCloseCallback, this));
closeItem-&setPosition(Point(160,400));
closeItem-&setTag(99);//这里设置item的tag,方便其他地方获取到这个item
auto menu = Menu::create(closeItem, NULL);
menu-&setPosition(Point::ZERO);
menu-&setTag(99);//这里同样设置tag 为99
this-&addChild(menu, 2);
//它的回调函数是点击这个button后,会出现一行字:Welcome to star blog!。
void HelloWorld::menuCloseCallback(Object* pSender)
auto _lable = LabelTTF::create("Welcome to star blog!","Arial",25);
_lable-&setPosition(Point(160,300));
this-&addChild(_lable,2);
效果如图所示:
2、然后添加ClippingNode:
auto clip = ClippingNode::create();//设置裁剪节点
clip-&setInverted(true);//设置底板可见
clip-&setAlphaThreshold(0.0f);//设置透明度Alpha值为0
this-&addChild(clip,10);
auto layerColor = LayerColor::create(Color4B(0,0,0,150));
clip-&addChild(layerColor,1);//在裁剪节点添加一个灰色的透明层
//创建模板,也就是你要在裁剪节点上挖出来的那个&洞&是什么形状的,这里我用close的图标来作为模板
auto nodef = Node::create();//创建模版
auto close = Sprite::create("CloseSelected.png");//这里使用的是close的那个图标
nodef-&addChild(close);//在模版上添加精灵
nodef-&setPosition(Point(160,400));//设置的坐标正好是在close button的坐标位置上
clip-&setStencil(nodef);//设置模版
clippingNode的用法注释已经写得很清楚啦,我就不再一一解释。使用clippingNode后,效果如图所示,我特意添加了一个用close图标做的精灵,方便对比。
3、这个时候,场景中的close按钮是高亮的,点击close按钮也是可以响应的,但是假设我界面上有许多按钮,它们也都是可以响应,如果我只想让玩家点击close按钮,其他按钮不能用,那该怎么做?(总有那么些&调皮&的玩家不按常理出牌)。方法很简单,就是添加一个覆盖整个屏幕的空白按钮。
auto blackItem = MenuItem::create();
blackItem-&setPosition(visibleSize.width/2,visibleSize.height/2);
blackItem-&setContentSize(visibleSize);//设置大小为整个屏幕的大小
auto blackMenu = Menu::create(blackItem,NULL);
blackMenu-&setPosition(Point::ZERO);
blackMenu-&setAnchorPoint(Point::ZERO);
this-&addChild(blackMenu,100);
这样点击按钮就无法响应了,因为在按钮上还覆盖着一个霸道的空白按钮。可是...现在连close 按钮都点击不了。怎么就这么麻烦?还能不能一起快乐的玩耍了?!看来只能出大招了,把触摸监听事件扯出来。我在场景的最上方添加一个layer(注意是最上方,如果是在空白按钮的下面,那么就触摸不到layer了),当玩家手指触摸到屏幕,我通过判断触摸的位置判断是否在close 按钮上,如果是的话,手动的响应close& 按钮。
auto listen_layer = Layer::create();//首先在场景的最上方再添加一个layer
this-&addChild(listen_layer,200);//zOrder设置为200,反正能在最上方就好
auto listener = EventListenerTouchOneByOne::create();//创建一个触摸监听(单点触摸)
listener-&onTouchBegan = CC_CALLBACK_2(HelloWorld::onTouchBegan, this);//指定触摸的回调函数
_eventDispatcher-&addEventListenerWithSceneGraphPriority(listener,listen_layer);//将listener和layer绑定,放入事件委托中
bool HelloWorld::onTouchBegan(Touch* touch, Event
auto point = Director::getInstance()-&convertToGL(touch-&getLocationInView());//获得当前触摸的坐标
auto rect = Rect(160-30,400-30,60,60);//设置框坐标和大小处于close 按钮的位置上
if(rect.containsPoint(point))//如果触点处于rect中
auto menu = (Menu*)this-&getChildByTag(99);//通过tag获取到menu
auto item = (MenuItem*)menu-&getChildByTag(99);//通过tag从menu中获取item
item-&activate();//让item响应
return true;//返回true表示接收触摸事件
随笔 - 644在郑州实习,cocos2d-x游戏开发,自己跟着网上的教程做过两个小游戏。请问实习工资大致是多少呢?
能否说几个不错的公司呢?
给钱就干,先学习

我要回帖

更多关于 cocos2dx棋牌游戏源码 的文章

 

随机推荐