导航:首页 > 源码编译 > cocos2dx引擎源码视频

cocos2dx引擎源码视频

发布时间:2022-12-07 05:53:08

⑴ 网上下了一个cocos2dx的项目,在打开的时候提示如下图片,请问怎么解决

这个就是没有找到你的项目依赖。也就是说你下载的这个项目不包含引擎部分。
你重建个cocos2dx项目,把源码和资源托过去就好了。或者自己添加项目依赖。

⑵ UNITY3D、Unreal、Cocos2DX...介绍“游戏引擎”江湖的几个大玩家 比特魔方原创

作者 | 第二个区块

出品 | 比特魔方

Cocos-BCX被大家寄予厚望,不能排除Cocos2DX这个因素。Cocos2DX可能很多区块链行业的朋友还不了解。这是手游领域的三大引擎之一。

引擎,大家可以简单理解为开发游戏所用的工具箱。

本文将会介绍其中的几个大玩家,尽量中立的说一下优缺点。这样一来方便感兴趣的读者了解游戏引擎这个领域,二来方便对日后的游戏江湖做出独立判断。

【 1 】UNITY 3D

Unity是目前3D手游领域使用量最多的引擎。它的开发商是Unity Technologies。在去年年中,Unity中国区在3D手机游戏市场的占有率达到了75%。在全球,占有率也到达了45%。实际上,在2019年之前,Unity曾经拥有过更高的市场占有率。

Unity的优点是体量小,上手容易。

行业里经常有声音说Unity在效果上输Unreal。我的观点是:不是所有游戏都以物理效果取胜,即使是3D游戏。而且,从几年前就发布的官方宣传片《亚当》的质量来看,Unity的潜力远大于多数开发者的操作能力。

有一个现实情况需要情形的意识到,从多年前Unreal3的时代开始,就有不少从业者认为Unity要走入黄昏了。然而这个判断至今没有发生。Unity的开发者数量优势和成本优势不容小觑。

视频简介 / 编者注:这个是一个合集链接,大概20分钟左右,非常好看。让魔小妹想起了《沙丘》。这个短片讲述的是人被迫变成机器人之后的悲惨命运。主人公亚当意外被人搭救,踏上逃亡之路,找寻自我。

【 2 】Unreal

Unreal是Epic Games开发的一款游戏引擎,是在手游领域市场占有率仅次于Unity的引擎。

虽然在市场占有率上落后,但是在了利润上,被推崇的程度上,Unreal强于Unity。

大家之所以推崇Unreal,是因为看好未来的手游竞争会越来越往重度的、精品的路线上走。Unreal可以创造更加生动的光影效果。

在前段时间刚刚发布的Unreal5演示中,即时渲染的、有 3000万面 的道具让人叹为观止。一时间,游戏和影视业界很多人惊呼变革以来。

几年前《古墓丽影10》中劳拉十万面的脸部模型是可以拿来吹嘘的。而新公开的Unreal5视频中,有3000万面的道具在一个场景中放了500个。

任何事情都有它的反面。相比Unity,Unreal也有自己的劣势。比如目前的游戏教学、培训,更多还是使用Unity。这让本来就更好上手的Unity拥有更多的开发者生态。

再加上,手游市场毕竟有很多偏轻度的产品。这些产品的预算未必支撑得起Unreal开发,却可能很适合Unity。

【 3 】Cocos2DX

Cocos2DX是一款2D游戏开发引擎,是市场中总体使用率最高的引擎,在2D引擎领域处于明显的领先地位,目前注册开发者已经超过140万。

相较于Unity和Unreal,Cocos2DX的技术积累没那么多,再加上是国人团队开发,因此被一些人轻看一眼。

实际情况是:Unity面对Unreal的比较优势,在Cocos2DX面对Unity和Unreal竞争的时候也一样生效。永远别小看开发者数量和成本优势对商业活动的吸引力。

从多年之前,人们就说2D已死。但时至今日,由于微信小游戏爆发,我们看到Cocos2DX并没有失去自己的阵地。再考虑到Unity和Unreal相较于Cocos2DX都有十年二十年的开发积累优势,我认为Cocos2DX还是值得被重视的。

换个角度想,国内在底层工具开发上比较薄弱,也不只是游戏引擎这一个案例。这是一种普遍情况。要改变这个情况,可能需要我们的市场、资本、观念、制度都往前走才行。

不得不提一句Cocos-BCX,是Cocos2DX的区块链兄弟项目。同样作为底层工具,在游戏公链这个赛道,至少国内团队没有落后。一旦区块链和代币在国内能被更多人可,Cocos2DX的积累将有机会直接助力Cocos-BCX。

【 4 】更多引擎

除了上边介绍的三款最被广泛运用的第三方引擎,很多游戏大厂也会自研或深度定制自己的引擎。

比如为《巫师》系列量身打造的 RED Engine 。

如果RED Engine能再次帮助《赛博朋克2077》获得成功,它将会成为CD Projekt真正的核心资产。

比如 Frostbite Engine(寒霜引擎) ,其优秀的物理碰撞处理能力让他孕育出了《战地》系列、《极品飞车》系列等大作。

游戏引擎是可以决定游戏开发流程和质量的重要工具,所以很多大厂会将其视作核心竞争力抓在自己手里。

这一点在更加成熟的主机游戏市场体现的更明显。照着这个逻辑来看,引擎这个赛道还将会容纳多个玩家。倒是在游戏引擎之外,很多特效软件会受到降维打击。

以上。

ps. 如果有兴趣,不妨去查查你喜欢的游戏是借助哪些引擎开发的O(∩_∩)O~

⑶ 自学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

⑷ 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/

⑸ 求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


⑹ cocos2dx 3.10 事件机制

cocos2dx的事件机制里存在三类: Event、EventListener、EventDispatcher
先理解一下它们之间的关系
当我们按下按钮时(Event),会触发一个特定的事件(EventListener相当于回调函数),而这个特定的事件又存储在EventDispatcher里,可能按下这个按钮会触发多个事件,而事件的先后就是靠EventDispatcher来决定的。

Event的相关类

当出现来自鼠标,键盘,触屏,摇杆等输入源的输入时,这个事实称之为事件

引擎无时无刻都在感受事件。

Event

可以看出Event主要包含三个变量,一个是事件类型_type(也就是定义的枚举类型:触摸、键盘等),isStopped判断事件是否停止,只要事件停止,其相关的Listener都要停止callback调用。

EventTouch
它对应于四种触摸操作,不同的EventCode可以告诉Listener来调用不同的callback。

EventCustom
它是用户自定义事件,userData记录用户自定义数据,另一个eventName是用户给事件取的别名

上面的源码都有英文注释,我就不多解释了,我只说一个最重要的_isRegistered,它判断事件有没有被注册,如果没有被注册就不会触发。(如何注册事件?将事件加入dispatcher)

在讲它之前,我们先了解一下它的一个重要变量。

sceneGraphListeners: 一个事件(比如说触摸事件),需要按照一定的响应序列,依次对这些Node进行事件响应,所以该类型的事件都会绑定一个与此相关联的node,并且 响应顺序是与node在scene下的zorder相关的 。该类型下的事件优先级统一为0。(与渲染树有关)

fixedListeners: 优先级根据 fixedPriority 的数值从小往大排序、

只要出现了删除,修改,添加监听器的时候,监听器列表需要重新排序,都需要设置相应的 DirtyFlag 操作。但是 Cocos-2dx v3.10 里面的 updateListeners 函数有删除监听器的操作,然而并没有设置相应的 DirtyFlag 操作。
会抛出下面的异常

Gt0Index() 方法其实就是获取到当前监听器中 fixedPriority == 0 的监听器在监听器向量中的位置,它 只有在给 Listener 排序的时候会设置,但是如果更新了对应 ListenerID 的向量(EventListenerVector),但是没有重新排序,就会出现 _gt0Index 未及时更新的情况 ,导致抛出这个异常。

引用:
Cocos2dx游戏引擎(3.x)----新的事件分发机制
cocos2dx之event事件(一)
cocos2dx之event事件(三):事件分发器EventDispatcher
Cocos2dx-v3.10 事件分发机制源码解析

⑺ egret 和cocos2d-x-js哪个目前更稳定更好用

如果大型游戏,强烈建议不要使用cocos2d-js
我们目前的几个项目都是cocos2d-js开发的,我打算把这几个项目转egret。有如下几个理由:
1、cocos ide有BUG:断点会崩溃、代码提示很差、内存太高、虚拟机的菜单栏会影响事件(迭代了很多版本,这菜单栏BUG都没修复)
2、studio的工作流在几个引擎中是最差的,而且有BUG。经常和实际表现不一致。而且内存占用大,会崩溃。不能继承(这个问题最严重,不能继承按钮,那么按下缩放等高级功能就很蛋疼)。
3、
架构太差。写点小功能没事,如果想写大型游戏,这套架构会让你抓狂!比如最简单的按钮事件,我必须在事件方法里面加个触摸类型判断。一个很简单的点击,就
多出很多这种相似的代码!4、UI有好几套,然而每一套都有BUG。CCUI的设计也是很糟糕的!同时也是崩溃的罪魁祸首。
5、引擎BUG问题,
很多BUG会让你欲哭无泪,比如坐标会出现undefined。再比如热更新的BUG,XCODE编出的包默认是js而不是jsc,当这个包发布商店就会
出现不能热更新的问题,同时也进不去游戏,卡在了热更新界面。(这个问题导致我们流失了3个月的用户,知道苹果商店通过审核位置),再比如
java/objectc和js的交互,这个都有问题!再比如:ios第三方输入法会导致崩溃!
6、工作流问题,IDE的断点的观察变量很不友好、studio导出的配置很大、studio扩展性很差。在IDE 1.2版本出来之前,我们团队甚至无法断点,只能打印日志来debug。
7、工作效率问题,代码提示先不谈。我实现一个简单的列表都能折腾很久,那ccui的list真是太不好用!除此之外,裁剪、遮罩这些只需要一行的代码,在cocos下面需要无数行!
8、
引擎升级问题:cocos大概一个月1个升级,egret是2周。然而cocos升级会带来大量的新BUG,而且兼容性很差。导致我们现在还用3.0版
本。最蛋疼的是,官方的3.6版本又不能断点了!3.0升级到3.6还会导致布局混乱、九宫失效、崩溃闪退(绝对不是代码问题这个解释了)!基本上
cocos每加个新功能都会带来无数新BUG,老BUG修复量也少,我论坛反馈的问题经常需要迭代2到3个版本才修复,下个版本修复兼职是不可能。而
egret不仅迭代快,BUG修复也勤快!也很少有一些导致产品质量的验证BUG。
9、官方人员态度问题:我在cocos论坛发的BUG反馈,过了7天才有人来回复。地址(从3.0到3.1和3.2的BUG,官方帮忙看下),再看下egret我发的BUG反馈,当时是下班时间,然而第二天一早就回复我了。地址(Egret社区-BUG列表)
10、API问题:cocos经历了3个大版本,官方API文档也有的API,实际尽然是没有的,官方回复是还没加入js绑定。
11、跨平台问题:cocos2d-js经常是HTML5和JSB表现不一致。导致我们现在只能专注JSB而放弃HTML5版本。egret很少有这个问题。
12、
性能问题:先抛开runtime。如果你用了ccui,那么我100%保证你的cocos2d-js的性能会被egret秒杀。再来说下native下面
的性能对比,cocos的人说egret是js写的逻辑,而他们是绑定。那么问题来了,在现在,js的逻辑产生的性能压力一点都不是问题(参考
node.js,能用js写服务器了都)。主要的性能压力其实是在渲染上面,而他们2个都是opengl作为渲染的。如果用了ccui,那么还是被
egret秒杀。那ccui带来的drawCall真是太!!再来谈runtime,egret现在很多浏览器都集成了runtime(可以opengl
渲染代替canvas渲染),而cocos-js只是说在合作,已经慢了一步。
13、产品路线图问题:cocos的几个产品一心在弄3D,egret都已经自己搞了一个IDE了。开发基本的生活cocos都没保障好,就去想和u3d打架!
14、内部问题:cocos估计内部很不和谐,ide据说是1个人在开发,studio是30个人(30个人整出这东西),而且studio是用的.NET搞的,跨平台最呵呵的技术!QT、AIR那些那么多高效率,扩展性强的技术不用,选了个.NET。。。。
---------------------------------------------------------------------------------------------------------------------------------

外话:说了那么多cocos的不是,我也曾试着爱过它,我甚至开发了一个和egret
wing一样的UI编辑器,写了个和Flash/Flex一样的API(egret用的这套,这种架构很好用,简单明了)。其中UI编辑器还加上了
unity3d那种绑定脚本的功能。然而因为cocos底层的一些令人发狂的BUG,我最终是放弃了。有egret这个车子在,我还造什么轮子?我打算把
手里头的这套cocos的东西开源。然后去整egret去!
---------------------------------------------------------------------------------------------------------------------------------
再来个题外话:
游戏引擎cocos2d-js和egret 对比

个是网络搜索第一的对比,里面说cocos2d的工具比egret多,我不否认,但是能用的基本没有。而egret的工具很稳定。就拿最简单的骨骼动
画,cocos连龙骨都不支持,studio里面的骨骼设计也是坑的不行,egret的骨骼设计工具从界面和实用性都已经完爆studio了!
再来说上面的地址里面的成功产品:捕鱼达人、DOTA传奇、我叫MT那都是cocos2dx写的,和js版本一点关系都没有!请问你有见过网页版的刀塔传奇么?
上面的开发语言对比,大项目来说,ts真的是完爆js!js那不小心就会出错真心不适合大项目,不然微软不会造这个轮子。
上面的参考资料对比,cocos2d-js的文档连参数的注释都没,和c++文档作参考也不行,很多参数是不一致的!而egret在开发工具里面就继承了中文的帮助。

从目前状况看,今年绝对是egret产品井喷的一年,不信走着瞧!cocos真是把我坑惨了!
---------------------------------------------------------------------------------------------------------------------------------

次申明,请拿cocos2d-js或者JSB的大作出来,不用拿2dx的东西。说到2dx,你们再去了解下,榜单上,有几个人是没改过引擎源码的,有几个
游戏能随着cocos引擎升级而升级。用studio的又有几个。并不想和王哲斯逼,只是希望你们能正视BUG,提高体验。如果好,我们团队会考虑
cocos技术的,否则只能用egret和unity3d了。我说cocos这么多不是,也是希望他成长,能给开发者带来更多利益,带来更多方便,而不是
各种无厘头的问题,各种蹩脚的手段去开发。还有,我说的这几点,@王哲
你接招,如果我不说出这些BUG,这些问题,那么估计还不一定改。egret同样有个人叫王泽,然而他的理念完全当我们开发者是用户,提高开发体验,这个

⑻ 怎样制作基于Cocos2d-x的SLG游戏

创建项目

如果要说到环境搭建,那又该是一篇长篇大论了,所以这里我就不说了,不清楚的同学到网上问度娘吧,会有很多不同系统不同版本搭建的结果的。

Cocos2d-x创建项目的方式一直都在不停的改动,所以这里我觉得很有必要给大家介绍下如何创建项目。

创建3.2的项目其实很简单,打开终端(Windows是cmd)进入到引擎文件夹目录,然后输入以下命令就可以创建。

cocos new SLG -p com.cocos2dx.rs -l cpp -d /Users/cocos2d-x/workspace/cocos2dx/cocos2d-x-3.2/projects
如下图:

p1

说明:

new:new后是项目名
-p :-p后是包名
-l :-l后是语言(cpp指c++)
-d :-d后是项目生成路径
如果一切无误,那等待几分钟以后你就可以在给定的目录下找到新建的项目了。打开项目工程后,下面我们就可以开始游戏的制作了。

前期准备

打开工程后,运行程序,你会发现它不是一个空的项目,在Classes和Resource文件夹下Cocos2d-x已经给出了一些实质性的东西,当然这些不是一定都有用的,它们存在的目的是为了给我们展示一个典型的Cocos2d-x的例子。

除了AppDelegate.h 和 AppDelegate.cpp文件,这两个文件夹下其他的东西都是可被删除的(不过在删除之前,可以先看一下HelloWorld类,了解下它的类结构、类方法,以便对Cocos2d-x进行初步的学习,也方便初学者依葫芦画瓢再写一个类似的场景)。AppDelegate类是创建项目时自动生成的一个类,它控制着游戏的生命周期,是Cocos2d-x游戏的通用入口文件,类似于一般 Windows 工程中main函数所在的文件。

打开AppDelegate.cpp文件,在游戏加载期的最后一个applicationDidFinishLaunching()函数中我们可以设置第一个启动的游戏场景,如下:

auto scene = GameScene::createScene();
director->runWithScene(scene);
GameScene是我们新建的一个游戏场景,下面会讲解。

分辨率适配

在我的游戏中,首先第一件事还是做分辨率适配,这是个恒古不变的定律。现如今市场中各种屏幕尺寸和分辨率的移动设备层出不穷,为了更好地适应这些设备,游戏的分辨率适配是十分有必要的。

在农场游戏中,很最要的一点就是实现大地图背景的拖动、放大缩小等操作,所以可想而知,我们的地图不是全部都显示在屏幕内的,也就是说,我们不能像之前的方式那样把整个显示内容做适配,我们应该留有一定的边距供玩家拖动。如下图所示:

p2

同样是在applicationDidFinishLaunching函数中,我们添加如下一段代码对游戏做分辨率适配,以便它能更好的适应不同的运行环境。

glview->setDesignResolutionSize(480.0f, 320.0f, ResolutionPolicy::FIXED_HEIGHT);
std::vector searchPath;
searchPath.push_back("H_1920");
FileUtils::getInstance()->setSearchPaths(searchPath);
director->setContentScaleFactor(1440.0f / 320.0f);
分辨率适配的原理,建议大家阅读一下:Cocos2d-x 多分辨率适配完全解析这篇文章,虽然它不是针对最新版Cocos2dx引擎,但它还是能很清楚的告诉你分辨率适配的原理和方法。

还有要说明的一点是,我们的游戏地图的高为1920,分辨率适配时则只设为了1440,意思就是说,我们本该全在屏幕内的内容留出了4分之一的高度在屏幕外。

编辑游戏地图

模拟经营游戏中,游戏地图多为拼接而成,这里我们用瓦片地图编辑器(Tiled Map Editor)来制作游戏的地图,它可以把编辑后的地图文件保存为TMX格式的文件,能被Cocos2d-x很好的支持。瓦片地图(Tile Map)不但生成简单,而且可以灵活的用于引擎中。关于瓦片地图的介绍可参考瓦片地图一文。

接下来我们开始创建地图。

运行TiledMap编辑器,新建一个地图文件。填写如下对话框:

p3

在地图方向选项内,可以选择正常、45度(传说中的2.5D)和45度交错,这里我们选择45度。接下来需要设置地图大小,这里的数值是指有多少格tile元件,并不是像素,这里我们选择30×30的地图。

最后是确定tile元件的大小,根据美工提供的地面元件大小设置,这个教程里,我们使用128×64的大小。

在地图大小一栏中,你可以看到最终的地图大小为3840 * 1920。

点击确认之后,你可能已经发现了,这个游戏地图它是菱形的,如下图所示。

p4

这里你可能会想,为什么要菱形的啦,选择45度交错建一个接近矩形的不行吗?呵呵,其实这样也是可以的,只不过啦,Cocos2d-x引擎中默认是不支持45度交错的,如果需要在引擎中加载这种交错的地图必须自己修改引擎代码(看到这,是不是整个人都不好了),而且在修改过后还不能正确的得到地图的大小,需要自己编写计算大小的公式代码。鉴于这一点,我在想,难道《全名农场》、《请叫我海盗》等游戏地图的四个角都不能被点击操作都是因为这个原因吗? 哈哈,就当是我想多了吧。其实菱形就菱形吧,其他的游戏也都这样,可以在菱形地图的下层贴一层背景来掩盖这一现象。

接下来,我们还是回到正题开始拼接地图吧。选择地图-》新图块,然后填写如下所示的对话框。

p5

选择浏览按钮,将准备好的图块文件载入编辑器。接着设置图块的宽度和高度(默认情况下是一个tile元件的大小,但),根据图块文件中图块的大小来设置。边距、间距什么的,可不做修改,0就好。

最后选中相应的图块,拖动到渲染区拼一个理想的地图。

p6

暂时我们就只简单的拼一个地图就可以了,后面再根据游戏需要,设置一些必要的对象和属性。

加载地图资源

新建一个GameScene场景,加载游戏地图。不过在此之前,请把编辑好的tmx和图块文件拷贝到Resource文件夹下。GameScene的结构和HelloWorld差不多,照着HelloWorld类依葫芦画瓢就可以建一个。你可以先看看它是如何实现的,再实现自己的类。这里就不多说了。

在Cocos2d-x中使用TMX,有以下流程供你参考:

首先用地图编辑器编辑你的地图,导出成TMX 格式。
将导出的TMX 文件和相关图片放在工程的Resoure文件夹下。
使用Cocos2d-x中TMXTileMap 类的create方法创建地图对象,TMX 文件的解析是引擎内部完成的,所以我们不需要担心。TMXTileMap 是Node 的子类,因此只要添加到场景中即可。
通过TMXTileMap,可以获得其他相关对象,比如单个瓦片(属Sprite类),比如对象组(ObjectGroup类),比如层(TMXLayer类)等;你可以通过TMXLayer类修改,删除或者添加某个网格位置的瓦片,这样可以动态的修改地图了,你还可以进行其他的操作,相关的API 我们后面使用到了再做讲解。
在GameScene类的init函数中添加如下的代码创建游戏地图:

mapLayer = LayerColor::create(Color4B(78,127,41,255));
this->addChild(mapLayer,-1);

auto map = TMXTiledMap::create("mymap4.tmx");
mapLayer->setContentSize(map->getContentSize());
mapLayer->addChild(map, 10);

auto treeSprite = Sprite::create("1.png");
treeSprite->setAnchorPoint(Vec2(0, 0));
treeSprite->setPosition(Vec2(0, 0));
treeSprite->setScale(2);
mapLayer->addChild(treeSprite, 11);
代码中新建了一个带颜色的背景层,背景层的尺寸等于加载的TMX地图大小。接着把地图和如下的一个遮盖层(其实就是为了防止菱形的地图看起来那么突兀而添加的一层)依次添加到层上。

⑼ cocos2dx怎么用

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主要功能:

流程控制(Flow control):非常容易地管理不同场景(scenes)之间的流程控制。

精灵(Sprites):快速而方便的精灵。

动作(Actions):告诉精灵们该做什么。可组合的动作如移动(move)、旋转(rotate)和缩放(scale)等更多。

特效(Effects):特效包括波浪(waves)、旋转(twirl)和透镜(lens)等更多。

平面地图(Tiled Maps):支持包括矩形和六边形平面地图。

转换(Transitions):从一个场景移动到另外一个不同风格的场景。

菜单(Menus):创建内部菜单。
文本渲染(Text Rendering):支持标签和HTML标签动作。
文档(Documents):编程指南 + API参考 + 视频教学 + 很多教你如何使用的简单测试例子。

BSD许可:尽管用就是了。

基于Pyglet:没有外部的依赖。

基于OpenGL:支持硬件加速。

cocos2d-x基本介绍:

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-x特点:

易于使用:游戏开发者可以把关注焦点放在游戏设置本身,而不必消耗大量时间学习晦涩难懂的OpenGL ES,此外,Cocos2d-x还提供了大量的规范。
高效:Cocos2d-x基于OpenGL ES进行图形渲染,从而让移动设备的GPU性能发挥到极致。

灵活:方便扩展,易于集成第三方库。

免费:基于MIT协议的免费开源框架,用户可以放心使用,不用担心商业授权的问题。

社区支持:关心Cocos2d-x开发者自发建立了多个社区组织,可以方便查阅各类技术资料

阅读全文

与cocos2dx引擎源码视频相关的资料

热点内容
程序员罗技 浏览:180
软考初级程序员课程2021下载 浏览:487
杭州程序员奶奶 浏览:878
不听命令造成错误 浏览:979
kool系统源码 浏览:608
流氓app在哪里看 浏览:98
域名购买了怎么指向服务器 浏览:121
安卓手机如何让照片颜色反转 浏览:859
怎么下载卓睿安手机版 浏览:514
h3crange命令 浏览:468
php前景和python 浏览:338
php压缩图片内存大小 浏览:495
在哪里可以查看云服务器的信息 浏览:70
python读取非txt文件 浏览:799
艾莫迅用什么编程软件好 浏览:227
android文件存储读取 浏览:214
php基础教程第5版 浏览:543
服务器里面怎么刷东西 浏览:194
荣耀手机如何快速把app切换页面 浏览:798
傻瓜式php源码 浏览:359