cocos2d-x

Cocos2d-x入门教程(一)环境搭建与HelloWorld

不想你离开。 提交于 2019-11-26 22:49:20
声明:本教程的开发环境为Win32,并且目前只在此平台上做开发实验。平台的选择只考虑开发的方便,教程的关注点在于平台之上的层面。 为了搭建一个在Windows下的Cocos2d-x开发环境,我们需要: 1.安装VS(2010或者2012 Desktop),笔者安装的是VS Express 2012 For Desktop。 2.下载Cocos2d-x源码库。Cocos2d-x的Github地址 https://github.com/cocos2d/cocos2d-x ,你可以下载zip包解压,也可以用git/svn检出,需要提醒的是不要检出全部,否则你要等好一阵子,只要检Head Revision就可以了。 3.编译。拿到源码后你会发现有cocos2d-win32.vc2010.sln 和 cocos2d-win32.vc2012.sln 两个解决方案文件,根据你安装的VS版本,选择其中一个打开,然后生成解决方案。提醒:时间可能会稍微长点,另外js和lua的两个项目可能会有错,因为文件缺失,这个暂时先不管,因为不会影响cpp的开发,后面有需求在解决。 4.设置工作区。找到template文件夹下的msvc文件夹,哪里面有一些脚本,从名字可以看出他们的用途,运行你的VS版本所对应的脚本即可。提示成功安装之后,你在打开VS,新建项目,在Visual C+

Cocos2d-x入门教程(二)简单的静态显示对象

你。 提交于 2019-11-26 22:49:06
为了进一步深入学习贯彻Cocos2d,我们将自己写一个场景类,但我们不会走的太远,凡是都要循序渐进,哪怕只前进一点点,那也至少是前进了,总比贪多嚼不烂一头雾水的好。 在上一节中我们建立了一个HelloWorld项目,如果你用的的确是HelloWorld这个名字,那么你的项目中会有一个HelloWorldScene这个类,也是在这个类里实现了所有屏幕上的显示。现在我们就仿照这个类来实现自己的一个场景,这个类命名为StaticDisplayObject。 首先需要声明这个类,在StaticDisplayObject.h文件中我们仿照HelloWorldScene.h将这个类声明出来: #include " cocos2d.h " class StaticDisplayObject : public cocos2d::CCLayer { public : virtual bool init(); static cocos2d::CCScene * scene(); void mouseCloseCallBack(CCObject * pSpender); CREATE_FUNC(StaticDisplayObject); }; 虽然除了类名这个类同HelloWorldScene之间没有任何差别,但如果你是新手,那么最好一个字一个字的亲手打出来。值得注意的是这里面的CREATE_FUNC宏

Cocos2d-x入门教程(四)Action模块

半世苍凉 提交于 2019-11-26 22:48:49
Cocos2d中的另一个核心应该属Action模块了,从基类CCAction到其下的各种子类,有数十个之多,通过他们之间的相互组合,可以得到非常丰富的动态内容。 从名称上看,Action这套东西肯定是同显示对象的动作有关,但这些东西内部的原理又是怎样的呢?如果你熟悉设计模式,那么你可以试着回忆一下 命令模式 这一概念,Cocos2d中所谓的动作从设计的角度讲,就是一个命令。 先来看它的接口。所谓的命令模式,其实就是对某一个或者多个操作的封装,而操作是针对于某个对象的,这个对象就是这个命令的目标: 通过CCActioin的 void setTarget(CCNode *pTarget) 和 CCNode *getTarget(void) 方法可以分别设置和获取命令的操作对象,实际上我们发现,CCACtion的目标是节点CCNode对象,也就是说Cocos2d中的动作都是用来操作显示对象的。 除此之外CCAction还有一个 void startWithTarget(CCNode * pTarget) 方法,该方法在动作/命令执行之前调用,它也有设置操作目标的作用,至于具体怎么用,要看子类怎么实现它,一般来说这个方法主要执行一些初始化操作。 命令的目标有了,接下来我们想知道命令如何触发。因为CCAction的目标是一个显示列表对象,因此动作的触发可以交给CCNode对象来承担:

Learning Cocos2d-x for XNA(5)——详解Menu菜单

Deadly 提交于 2019-11-26 21:46:27
菜单的实现,无非就是文字或者图片。从多个实现的方法详细介绍菜单的实现效果。 就像之前介绍的CCLabel元素一样,CCLabel元素更多的时候是实现说明的作用,用于导航性的菜单,更多时候是用CCMenu。 主要的几个Menu相关的元素的继承关系。 基本上引擎实现菜单功能的几个成员都在图中。 CCMenuItemFont 创建MenuItemLabelScene和MenuItemLabelLayer类文件。 在MenuItemLabelScene中添加构造方法,方法中实现对MenuItemLabelLayer层的添加。 代码如下: 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using cocos2d; 6 7 namespace LearningCocos2d_xForXNA.Classes 8 { 9 class MenuItemLabelScene:CCScene 10 { 11 /// <summary> 12 /// 构造方法 13 /// </summary> 14 public MenuItemLabelScene() 15 { 16 CCLayer _menuItemLabelLayer = new

Learning Cocos2d-x for XNA(7)——让Sprite动起来

人盡茶涼 提交于 2019-11-26 21:46:12
本讲将详细介绍Cocos2d-x游戏中动画Animate的创建方式,通过逐帧数组播放动画和创建动画集合播放动画,比较两者的异同,让Sprite动起来。 还是得创建两个文件AnimateLayer和AnimateScene AnimateScene AnimateScene 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using cocos2d; 6 7 namespace LearningCocos2d_xForXNA.Classes 8 { 9 class AnimateScene:CCScene 10 { 11 public AnimateScene() 12 { 13 CCLayer _animateLayer = new AnimateLayer(); 14 this .addChild(_animateLayer); 15 } 16 } 17 } 通过逐帧数组播放动画 动画是通过逐帧连续播放图像而形成的动作画面。 既然是逐帧动画,细化话后,即是单帧,通过记录单帧信息,然后再将单帧连续起来,即是逐帧动画。 前期准备 内容管道(Content)创建文件夹img/Wolf/Sprite,并在其中添加以下贴图(740*105)

Learning Cocos2d-x for XNA(3)——文字篇

隐身守侯 提交于 2019-11-26 21:46:10
文字,是人类文明的象征。 文字显示,可用字符串或文字图片显示。 字符串显示 字符串显示中,lable标签是最长见得。 新增一个类文件,取名StartPageScene,很显然,是个Scene(场景)类。 让其继承CCScene类:先using cocos2d,再继承CCScene 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using cocos2d; 6 7 namespace LearningCocos2d_xForXNA.Classes 8 { 9 class StartPageScene:CCScene 10 { 11 12 } 13 } 同样的方法,新增StartPageLayer类,继承CCLayer类,作为StartPageScene下的一个Layer(层)。 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using cocos2d; 6 7 namespace LearningCocos2d_xForXNA.Classes 8 { 9 class StartPageLayer

Learning Cocos2d-x for XNA(8)——Sprite到哪,我做主

北慕城南 提交于 2019-11-26 21:46:09
游戏中,作为玩家对Sprite的操作,最基本的就是控制Sprite的移动,做Sprite的主人。着手让Sprite移动起来。 前期准备 添加素材png和plist至内容管道(Content)文件夹plist中,该动画是Sprite跑动的姿势。 wolf_move.plist代码 wolf_move.plist 1 <?xml version= " 1.0 " encoding= " UTF-8 " ?> 2 <plist version= " 1.0 " > 3 <dict> 4 <key>frames</key> 5 <dict> 6 <key>wolf_move1.png</key> 7 <dict> 8 <key>frame</key> 9 < string >{{ 2 , 2 },{ 69 , 98 }}</ string > 10 <key>offset</key> 11 < string >{- 3 ,- 6 }</ string > 12 <key>sourceSize</key> 13 < string >{ 75 , 110 }</ string > 14 </dict> 15 <key>wolf_move2.png</key> 16 <dict> 17 <key>frame</key> 18 < string >{{ 73 , 2 },{ 73 , 104 }}

Learning Cocos2d-x for XNA(2)——深入剖析Hello World

99封情书 提交于 2019-11-26 21:46:08
如何部署cocos2d-x for xna的VS模板,可以参考一下 Cocos2d-x for WindowsPhone:万丈高楼亦可不需平地起 当我们新建一个Project后,Visual Studio会创建两个工程,一个用做程序,另一个用做程序的内容Content(称内容管道)。 很显然,这就是XNA的基本框架。 第一个工程文件主要是游戏的代码逻辑部分,另一个主要是存放游戏的资源(文字、图像、音频等媒体文件)。 Cocos2d-x创建的初始模版,运行一下,会出现经典的Hello World。 如果初始模版编译不成功,可以参考上面提及的相关文章。 既然cocos2d-x for xna是在xna框架的基础上开发的,那么XNA中窗口程序文件Game.cs在引擎中同样存在。下图很清晰地描述了XNA的框架流程。 即使你不是很了解,对你后面学习引擎的使用,影响也不是很大,当然熟悉更好。注意的是XNA框架可以看作是一个无限循环程序,就是一个图帧动画地不断呈现的过程。 XNA由窗口程序和主程序组成,XNA的窗口程序在Game1.cs文件中,类名为Game1,主程序在Program.cs文件中Program类中。 Program.cs文件中,主要建立Game1类对象并运行方法Run。Run方法将反复调用Update和Draw方法。 using System; namespace

Learning Cocos2d-x for XNA(1)——小窥cocos2d-x框架

孤街浪徒 提交于 2019-11-26 21:46:08
Cocos2d-x for xna的发布,意味着C#的开发者也可用C#编写属于自己的游戏。对于一部分对C++苦恼而喜欢C#的编程初学者来说,如果能够用C#加上一个好的游戏引擎写个小游戏也是不错的选择。虽然XNA也能够满足C#开发者的游戏梦,但不得不说cocos2d-x游戏引擎的确让开发游戏成为一件很简单的事情,做一款小游戏,还是不错的选择。当然,该引擎倡导的跨平台的确有一套,同一套API,让开发者在平台迁移上的工作量减少了很多。Iphone,Andriod,windows phone,win8等平台下,都可使用cocos2d-x。由于不同平台下,都有自己的一套解决方案,同一套API,学习一个,基本上转到其他平台是很简单的事。这样,C#开发者学习了cocos2d-x for xna后,以后在需要用C++,Java,Object-C,html5开发时,再学习该语言下的cocos2d-x时,那就简单很多了,当然还是得花时间的。编程语言只是实现的工具、学习的媒介,重要的是Idea。 废话不多说,来张引擎中重要成员的关系图 游戏也是一门艺术,同样是一场电影。 CCDirector(导演):导演可以创建和处理游戏窗口,管理如何以及何时执行场景(CCScene),也就是说,切换场景(页面)由导演负责。 CCCanera(摄像机):摄像机从不同的视野观察各个节点,如动作、旋转、平移等。

Learning Cocos2d-x for XNA(4)——中文显示

左心房为你撑大大i 提交于 2019-11-26 21:45:57
上讲中谈到中文显示的问题,XNA显示中文可以从 马宁的Windows Phone 7开发教程(4)——XNA显示中文字体 找到解决方法,当然,既然Cocos2d-x for xna是基于XNA的游戏引擎,同样适合。 这里就详细转述一下在Cocos2d-x for xna中的使用。 添加 messages.txt 在主程序Project中添加messages.txt文件 打开message.txt,添加你需要的中文,保存。 添加“内容管道扩展库” FontProcessor 右击解决方案,添加——新建项目,找到内容管道扩展库。 打开默认创建的ContentProcessor1.cs文件 复制以下代码,替换掉原来的代码 FontProcessor using System; using System.Collections.Generic; using System.Linq; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Content.Pipeline; using Microsoft.Xna.Framework.Content.Pipeline.Graphics; using Microsoft.Xna.Framework