
cocos2d-x游戏开发
文章平均质量分 90
大掌教
会写点前端,会写点后端,会写app,会写游戏,会写策划案,会做产品原型,啥都会一点,拒绝996
展开
-
cocos2d-x3.6 连连看完整源码
我的博客:http://blog.youkuaiyun.com/dawn_moon 好了,这个连连看是用最新版cocos2d-x 3.6版写的,里面使用了很多新特性。基本完工了,还有一个积分和关卡没有做,有兴趣的同学可以拿到源码自己做一个,练练手。 后面我准备写一个cocos2d-x3.6物理游戏。因为cocos2d-x从3.x系列以后就自己封装了物理引擎到框架里面,使用起来更加方便。不需要再去学习bo原创 2015-06-29 22:58:25 · 8439 阅读 · 13 评论 -
cocos2d-x3.6 连连看随机地图实现
我的博客:http://blog.youkuaiyun.com/dawn_moon这一节来讲地图初始化实现。连连看地图初始化有很多实现方式,大概会有以下几种:每一格的位置随机取图片放上去随机取图片放到随机的位置上去把图片铺满地图,随机打乱位置我们采用第三种方式。要注意的是,为了保证最后所有的图片都被消掉,那么所有的图片都要是偶数个。我们采用逐格绘制,每次放两张相同的图片,铺满地图以后,随机打乱。初始如下原创 2015-06-26 00:35:14 · 4786 阅读 · 1 评论 -
cocos2d-x 3.6 连连看算法
我的原创博客:http://blog.youkuaiyun.com/dawn_moon好了,在开始讲连连看游戏场景之前先来讲讲连连看算法。连连看算法网上有很多,算法控首先想到的就是广度优先搜索,求出路径,然后求最小拐弯路径。这个算法可以,但是对没有学过算法的同学可能有点困难,我这里也不讲。我百度到一个比较通俗简便的算法,拿来用一下在开始讲算法之前,讲一下地图布局,假设 4*4 的棋盘。初始化地图,将要加载的图原创 2015-06-18 16:43:41 · 3867 阅读 · 0 评论 -
cocos2d-x 3.6版连连看开始界面动画
我的博客:http://blog.youkuaiyun.com/dawn_moon 上一篇文章讲了开始界面的几个主要元素,背景,白云,倒影,岛及其倒影,沙滩等。里面稍微难一点的就是序列帧动画,延时动作序列,比如船的动画效果。船的来回游荡的动画稍微有一点复杂,里面由很多动作组成一个序列,比如翻转,移动,移动的逆动作,序列包装,无限重复动作包装等。不过代码很清晰,看不懂的可以下面留言。这一篇讲几个比较高难度的动作原创 2015-06-15 23:21:23 · 3357 阅读 · 0 评论 -
cocos2d-x 3.5版 创建新工程
mac下的cocod2d-x开发已经趋于脚本控制了,很多地方都用到python来做自动化管理。打开终端,cd到源码目录。如果之前已经配置好了所有的环境变量,这里就可以用了。cocos new MyGame -p com.your_company.mygame -l cpp -d NEW_PROJECTS_DIRcocos 是一个脚本名字,new是关键字,MyGame是你要建的新工程,com.your原创 2015-05-06 17:29:17 · 1937 阅读 · 0 评论 -
cocos2d-x 3.5版 运行test工程
上一篇文章讲了怎么在mac环境下安装cocos2d-x_3.5版,这章讲怎么运行test工程。先跑起来看看是什么样子,才有继续下去的动力。bingo其实源码目录下有一个说明文件,就是README.md,大家要养成看readme.md的文件,这个文件随处可见,基本开源项目都会有这么个东西,通常作者会在这里写使用手册。这个文件名翻译过来就是读我,所以还是要读一读的。现在cocos2d-x已经没有xcod原创 2015-05-06 16:19:02 · 2109 阅读 · 1 评论 -
cocos2d-x_3.5环境搭建
cocos2d-x_3.5环境搭建首先说下,我这里只说mac环境,因为windows对我来说只是游戏机,不会编程。mac下编程一定要懂点终端的常规使用,不会可以百度一下。下载3.5源码解压到工作目录,所谓工作目录就是你自己建一个文件夹,常规编程的目录都放在这里,名字随意取。我的是workspace。打开终端,进到源码目录,记得是cd命令哦。命令,cd cocos2d-x-3.5源码目录下有个原创 2015-04-28 17:27:28 · 2417 阅读 · 0 评论 -
cocos2d-x 3.5版 关于Console模块
cocos2d-x引擎发展的日益完善,更新了很多小工具。这个Console模块是一个控制台调试工具,可以实现远程调试,用用还是蛮有意思的。看AppDelegate.cpp里面的代码 // Enable Remote Console auto console = director->getConsole(); console->listenOnTCP(5678);恩,客户端里面只原创 2015-05-08 15:50:00 · 1734 阅读 · 0 评论 -
cocos2d-x大版本3.1系列一
本人博客:原创 2014-05-30 16:50:03 · 3076 阅读 · 1 评论 -
cocos2d-x游戏开发 跑酷(九) 源码下载及小结
这个东西零零碎碎写了一个礼拜吧。其实也没多少东西在里面。文章后附下载地址博客地址:http://blog.youkuaiyun.com/dawn_moon因为我没用过chipmunk,而且它是面向过程的东西,情感上又不太愿意去研究,所以我用box2d来做了物理仿真。个人感觉box2d还是蛮好用的,它的作者很牛逼的哦。暴雪娱乐的首席软件工程师,box2d是他业余写的。国外的攻城狮都这么牛逼么。我感觉原创 2014-03-31 16:05:34 · 9047 阅读 · 35 评论 -
cocos2d-x游戏开发 跑酷(五) 跳起和下蹲动作 手势识别
人物已经可以跑动起来了,但是还仅仅只是一个单调的跑动,还会跑出屏幕。先实现一个无限滚动背景。实现滚动背景有几个方式:1.人物位置不动,背景滚动。我之前的天天飞翔是用的这种,不过那个背景移动是用的动画,两张图片重复动作滚动。还有之前的雷电,也是背景滚动。不过实现有点区别,是循环改变背景的Y坐标来实现的。2.人物移动,当前层跟随人物,使用CCFollow。详细用法有兴趣可以自己搜索原创 2014-03-25 14:46:59 · 6490 阅读 · 5 评论 -
cocos2d-x游戏开发 跑酷(六) 地图循环
现在人物可以跑动,可以跳跃和下蹲。但是他还是一个孤独的runner,在一片漆黑的世界里跑在一条永无止境的线上。现在给他加上背景和地板,让他跑在一个色彩斑斓的世界。泰然JS版的跑酷,这个地图是一个自定义class。在C++里面尽量不要自定义一个class,不然你new一个对象,在delete它,虽然也是一样能跑,但是跟引擎风格不一致,看起来感觉怪怪的。我这里创建一个MapMa原创 2014-03-25 18:43:23 · 6493 阅读 · 0 评论 -
cocos2d-x 3.0rc2版发布了
本人博客地址,转载吧亲们:http://blog.youkuaiyun.com/dawn_moon 之前做小鸟的和跑酷的时候虽然cocos2d-x除了3.0版,但是还是alpha版。当时大致看了一下发现有蛮多改动的,所以还是用2.2.3做项目。 前天看到官方发布了rc2版。哈哈,这是个什么版本呢。rc命名,应该是正式发布候选版了,就是说下一版就是发布版了。可是我又看到rc0,rc1,rc2原创 2014-04-18 01:45:38 · 2560 阅读 · 1 评论 -
cocos2d-x游戏开发 跑酷(八) 对象管理 碰撞检测
对象管理类的原理是这样的:ObjectManager类是一个单例类,全局只有一个对象实例存在。初始化的时候创建两个数组CCArray来保存金币和岩石。为什么要保存,因为在地图重载的时候,要销毁看不见的那些对象。金币和岩石是随机添加的,每个金币和岩石都有一个地图索引,就是说它是在第几个地图上的,删除的时候根据这个来删除。我的博客:http://blog.youkuaiyun.com/dawn_moon,原创 2014-03-31 14:15:22 · 4258 阅读 · 2 评论 -
cocos2d-x游戏开发 跑酷(七) 添加金币和岩石
断断续续的,这个跑酷的代码终于写完了。再写两篇文章总结一下,这个游戏就算完工了,希望这个系列对新手有帮助。如果你能沉下心来看这几篇文章,我相信,一定能有所收获。当然最后肯定会开源代码的,请放心。最近看到有的网站转载我的文章,我很高兴也很欢迎。不过请注明出处好吗?虽然不商用,但是这东西也是我的劳动成果,尊重一下可以么。有的网站应该是写的爬虫,专门来扒我的博客,连图都扒过去了,但是请把我的原创 2014-03-31 12:35:59 · 5130 阅读 · 0 评论 -
cocos2d-x游戏开发 跑酷(四) 关联物理世界
前面一节虽然实现了一个跑动的人物,但是他仅仅只是一个精灵在执行一个跑动的帧动画而已。这一节我要实现精灵和物理世界关联,让这个人跟实际的Parkour一样,有实际体积,会碰撞。一个精灵怎么样和一个物理的body关联起来,使他具有一个刚体的特性。在cocos2d-x box2d 入门这篇文章里面,我有简单讲了一下。有人说将一个body的userData设为精灵就可以了,其实这是不够的。bo原创 2014-03-18 14:03:01 · 5181 阅读 · 5 评论 -
cocos2d-x-3.6 引擎概述
cocos2d-x是一个游戏开发引擎,从发布到现在也有五六年了,一路看它慢慢壮大。它是现在应用最多的开源2d引擎,没有之一,据说已经占领90%的市场,所以,对于想从事游戏开发的童鞋来说还是有必要学习一下的。那么问题来了,什么是游戏引擎?一个写安卓和ios应用的程序员,如果想通过自学来转向游戏开发,这个问题肯定要先弄清楚,否者堵在心里会不踏实,也不利于后面的学习。学习一个事物,首先要了解它的本质,而不原创 2015-06-06 17:48:05 · 2117 阅读 · 0 评论 -
cocos2d-x-3.6 开篇说明
准备写一个专栏,从基础部分开始,通过一个实例讲解手游开发的过程。希望对初学者有帮助。之前我也写过一个专栏,cocos2d-x游戏开发详解,那时候我觉得我已经把cocos2d-x里面最重要的部分说清楚了,看完这个专栏应该会对cocos2d-x有比较深刻的认识。后来我一个实习生说,我博客的文章讲得太深,对初学者来说,根本没办法理解,这是一个问题。最近我重新理了一下思路,准备写一个系列来系统讲解游戏开发。原创 2015-06-06 16:25:37 · 1848 阅读 · 0 评论 -
cocos2d-x 3.6连连看源码发布
我的博客:http://blog.youkuaiyun.com/dawn_moon最近比较忙,视频教程也没有更新,不好意思。源码我放在了两个地方,一个是百度网盘,这个工程包含引擎源码,下载下来就可以跑,但是比较大,有100多M。另一个是csdn资源,不包含引擎源码,只有10多M,但是需要自己整合引擎源码。整合引擎代码的步骤,我大致说一下步骤: 1. 下载资源 连连看.zip, 解压之后将目录改为LLK。 2原创 2015-07-21 23:45:41 · 4126 阅读 · 4 评论 -
cocos2d-x 3.6版loading加载资源
接着讲资源加载。 前面一节讲了怎么用一个图片创建一个背景。其实就是创建一个精灵。在cocos2d-x里面,背景,人物,道具,看到的许多对象其实都是一个精灵。资源加载的时候通常会做一个loading的界面,告诉用户,现在在加载资源。当然有很多同学写教程,只写如何实现loading界面,怎么加载资源并没有写,这是不全面的。我先讲如何完成一个loading界面。把loading的图片放进工程,在Reso原创 2015-06-13 10:14:28 · 3807 阅读 · 0 评论 -
cocos2d-x 3.6版连连看开始界面
上一节讲了一个loading的动画界面,其实没有loading资源。 怎么样loading资源,如何预加载资源呢。直接上代码 // 创建一个一直重复的动画 loading->runAction(RepeatForever::create(Sequence::create(fadeIn, fadeIn->reverse() ,NULL))); // loading resources原创 2015-06-14 00:36:22 · 4240 阅读 · 2 评论 -
cocos2d-x 3.6版连连看加载资源
网上找了一个梦幻连连看的资源,大家可以百度一下。然后整理一下加到工程里面去,包括声音和图片文件,后面解释如何整理可以方便管理。我不推荐在代码里面直接引用资源文件名,我称之为硬编码。做iOS开发的同学好像比较习惯这样,要用按个图片,直接用图片来索引。我们将所有的资源文件用C风格的字符串做一个索引,放在一个头文件Resources.h里面。这样以后需要修改图片或者索引可以很方便的修改。 好,先加这么多原创 2015-06-12 16:54:29 · 3616 阅读 · 0 评论 -
cocos2d-x 3.6版连连看版本控制
为了以后的开发和管理,源码开发必须要使用版本控制。我们当然选择git来做版本控制了。如果你在终端输入git,提示不是一个命令的话,那就说明你的机器没有安装git工具。那就安装一个,百度之有很多安装教程。好,先把Resources下的res删掉,这个目录没什么用,可以在Xcode里面删掉,选择丢进垃圾桶。还可以把一些不用的目录删掉,比如proj.linux,proj.win8.1-universal,原创 2015-06-11 13:15:24 · 2787 阅读 · 0 评论 -
cocos2d-x 3.6连连看工程结构
前面讲了怎么创建一个LLK游戏,这一节讲一下这个新建工程的结构,先搞清楚结构,后面再讲如何写我们自己的游戏。看这个工程,有两个工程图标,一个是LLK工程,一个是cocos2d-x工程。cocos2d-x是以一个库工程的形式引入到我们的LLK工程里面的。Classes是游戏逻辑文件的分组,这个组里面是纯游戏逻辑相关的cpp文件,到时候如果要移植到其他平台,就是要移植这一部分的代码。Resource原创 2015-06-10 12:46:21 · 3174 阅读 · 0 评论 -
cocos2d-x 3.6版连连看
写个连连看来讲游戏开发,我觉得实例讲解效果会好一些。终端下面cd到源码目录,敲命令:cocos new LLK -p com.goonear.llk -l cpp -d ./Goonear脚本就会创建一个工程了,看脚本的输出提示: 其实脚本创建新工程原理很简单,引擎原码目录下有很多工程模板,安卓,ios,mac,linux。这些模板都是事先做好的,引擎开发组会不断维护更新。然后执行脚本创建新工程的原创 2015-06-09 21:22:29 · 3723 阅读 · 0 评论 -
cocos2d-x3.6 生成带类图的离线文档
我的博客:http://blog.youkuaiyun.com/dawn_mooncocos2d-x的官网有点慢,而且最新3.6的在线API文档竟然没有了类图,不知道什么原因,之前2.2.6都是有的。不过可以在本地自己生成一个文档,并且可以生成类继承图。mac系统下,安装doxygen工具。cd到源码目录下的docs目录。打开doxygen.config文件,搜索CLASS_DIAGRAMS ,将其改成Y原创 2015-07-01 13:48:04 · 2574 阅读 · 0 评论 -
cocos2d-x 3.6创建工程
到这里,应该有了开发环境了吧,没有的话就去看我前面的文章或者百度别人的文章吧。现在的开发环境,xcode基本已经升级到了6.x系列了,我的是6.3,而cocos2d-x是3.6版本。现在创建工程已经没有xcode模板了,还有人在问我为什么不能像创建ios工程一样,用xcode来创建工程。现在使用python脚本来创建新工程。源码目录下有个READE.md文件,用Mou程序打开,可以看到使用说明,其中原创 2015-06-09 00:21:49 · 4406 阅读 · 0 评论 -
cocos2d-x3.6 连连看自动消除
我的博客:http://blog.youkuaiyun.com/dawn_moon前面已经写完了连连看的主要逻辑,这一节来讲如何自动消除,并且,如果棋盘成了死局以后怎么办。前面章节讲解连连看消除算法的时候讲过,后续自动消除算法也是基于连接算法的。原理很简单,两层for循环,扫描棋盘,判断是否有连接,如果有,添加连接路径,如果整个棋盘都没有可以相连的两个点,那么就是死局。死局如何来解,我这里的做法是,再随机打乱现原创 2015-06-29 18:08:18 · 3796 阅读 · 0 评论 -
cocos2d-x3.6 连连看触摸事件传递
我的博客:http://blog.youkuaiyun.com/dawn_moon上一篇基本已经实现了连连看的整个游戏。 这一篇讲加一个倒计时和一个Game Over的界面,当游戏结束的时候弹出Game Over的对话框,还可以Play again。倒计时很简单,就是一个时间进度条。 // 时间条背景框 auto progressFrame = Sprite::createWithTexture原创 2015-06-28 21:59:17 · 3201 阅读 · 0 评论 -
cocos2d-x-3.6 引擎基础概念
先讲一下引擎里面几个重要的基础概念:导演,节点,场景,层,精灵。当然实际开发者会碰到很多其他概念,不过不要紧,有了这些基础概念,后面自己学习起来就容易多了。节点(Node)是cocos2d-x里面最基础的一个类,游戏中几乎所有的类都派生自这个类,换句话说,游戏里面几乎所有的游戏对象都是一个节点。那么如何管理这些游戏对象呢,cocos2d-x引擎采用节点树来管理所有的游戏对象。看看一个游戏里面各元素原创 2015-06-07 17:59:16 · 2618 阅读 · 2 评论 -
cocos2d-x3.6 连连看点击事件
我的博客:http://blog.youkuaiyun.com/dawn_moon上一篇讲了初始化棋盘,这一篇来讲如何来触发点击事件。注意,所有的这些函数都没有放在update()里面。因为update()如果启用的话,它没每隔0.1s调用一次,如果界面绘制放在update()里面的话,会被重复绘制,没有必要。棋盘绘制直接在init()函数里面,调用一次就可以了。然后我们要写点击事件,点击一个图标,放大,然后点原创 2015-06-26 12:36:36 · 3099 阅读 · 0 评论 -
cocos2d-x3.6 连连看连通画线
我的博客:http://blog.youkuaiyun.com/dawn_moon网上看到很多人写的连连看,都没有画连线的实现,其实要话连线挺简单的。cocos2d-x 提供了一个很方便的画图形的类,DrawNode。这个类封装了很多画线条,多边形的方法,很方便,很好用,很强大。DrawNode的使用很简单,我使用一个成员变量来保存这个DrawNode,因为会一直重复使用。mDraw = DrawNode::c原创 2015-06-27 15:15:15 · 4882 阅读 · 0 评论 -
cocos2d-x3.6 连连看连通算法
我的博客:http://blog.youkuaiyun.com/dawn_moon上一章讲了连连看游戏的主要逻辑,连通算法并有讲如何实现。这个连连看没有使用广度优先搜索算法,采用的是一种比较有技巧的算法,参见前面章节。大致分为几个部分:直连通两个点X轴扩展后可以直连通两个点Y轴扩展后可以直连通看下连接函数bool GameScene::link(cocos2d::Vec2 v1, cocos2d::V原创 2015-06-26 16:41:56 · 3930 阅读 · 0 评论 -
cocos2d-x游戏开发 跑酷(一)开始界面
看了泰然论坛的跑酷,教程很详细,代码也很清晰,不过是JS版的。上次我也重写过他们的雷电,不过由于比较忙,当时也没有专职做游戏就没有写详细的教程。这次我想按照他们的思路重写一下,写个详细的系列教程。然后写个Lua版的,希望对还没有入门的开发者有帮助。泰然的跑酷代码连cocos2d-x2.1.5的引擎代码都一起打包了,这样方便大家直接调试,不需要自己再另建工程,避免引擎版本不一原创 2014-03-14 11:55:13 · 8716 阅读 · 2 评论 -
cocos2d-x游戏开发 跑酷(三) 人物跑动
好吧,终于要跑起来了。要实现跑酷需要用到帧动画,什么是帧动画,不解释行么。介绍一个将小图打包的工具TexturePacker,这是一个很强大的工具,另外还有一个物理编辑器PhysicsEditor,也不错,地址:http://www.codeandweb.com。刚好上周收到工具作者给的free licences,感谢一下。有兴趣的同学可以去申请一下。加载精灵的一个比较高效原创 2014-03-14 19:03:21 · 7111 阅读 · 3 评论 -
cocos2d-x游戏开发(七)对象释放时机
欢迎转载:http://blog.youkuaiyun.com/fylz1125/article/details/8521272这篇写写自动对象的释放时机。一个对象调用autorelease()函数后就被加入自动释放池,那么它什么时候被释放呢?我从前面说过的游戏主循环开始跟进:int CCApplication::run(){ if (applicationDidFini原创 2013-01-20 12:40:05 · 4494 阅读 · 0 评论 -
cocos2d-x游戏开发(四)游戏主循环
欢迎转载:http://blog.youkuaiyun.com/fylz1125/article/details/8518737终于抽时间把这个游戏写完了。由于没有自拍神器,所以把它移植到了Android上,用我的戴妃跑的很欢啊。自此,我算是完成了一个功能比较完善的游戏了。麻雀虽小,五脏俱全,该有的都有,不该有的估计也有,嘿嘿。这几天把写这个游戏的经历和学习过程整理一下,多写几篇博客,就当做记原创 2013-01-19 02:57:14 · 16015 阅读 · 10 评论 -
cocos2d-x游戏开发(二)开始菜单续
欢迎转载:http://blog.youkuaiyun.com/fylz1125/article/details/8492497上一篇文章已经实现了MoonWarriors开始菜单的大部分元素,还差一个运动的飞船和一个点击newGame的特效和音效。1.飞船// ships CCTexture2D *textCache = CCTextureCache::sharedTextu原创 2013-01-11 11:11:09 · 5940 阅读 · 6 评论 -
cocos2d-x游戏开发(十三)细说回调函数
欢迎转载:http://blog.youkuaiyun.com/fylz1125/article/details/8546607cocos2d-x中有大量的回调函数的应用,主要有以下几类,看下CCObject.h中的定义typedef void (CCObject::*SEL_SCHEDULE)(float);// 用来调updatetypedef void (CCObject::*SE原创 2013-01-27 18:07:35 · 12730 阅读 · 8 评论 -
cocos2d-x游戏开发(一)开始菜单
欢迎转载:http://blog.youkuaiyun.com/fylz1125/article/details/8489333打开html5的工程,我用的是WebStorm。然后看到MoonWarriors的源码,如下:源码都在src目录下,config目录下是一下配置信息,比如游戏状态,分数,命条数等。接下来就是游戏js代码了。看名字就大致知道是干什么的了。我从开始菜单开始。原创 2013-01-10 12:46:08 · 8566 阅读 · 6 评论