- 博客(147)
- 资源 (74)
- 收藏
- 关注

原创 【玩转cocos2d-x之四十】如何在Cocos2d-x 3.0中使用opengl shader?
有小伙伴提出了这个问题,其实GLProgramCocos2d-x引擎自带了。完全可以直接拿来用。先上图吧。使用opengl前后的对比:1.在cpp中使用openGL shader。(1)添加gray.vsh和gray.fsh到资源目录(见附件)。(2)添加如下代码:bool HelloWorld::init(){ if ( !Layer::in
2014-04-17 23:34:33
10858
1

原创 【玩转cocos2d-x之三十九】Cocos2d-x 3.0截屏功能集成
3.0的截屏和2.x的截屏基本上相同,都是利用RenderTexture来处理,在渲染之前调用call函数,然后调用Cocos的场景visit函数对其进行渲染,渲染结束后调用end函数即可。只是3.0截屏需要在截完屏的下一帧才能处理RenderTexture,这点要注意。关于2.x的RenderTexture的API和demo可以参见http://blog.youkuaiyun.com/jackystudio
2014-04-17 21:24:16
6338

原创 【玩转cocos2d-x之三十八】如何使用NDK-STACK tool来恢复Cocos2d-x安卓错误堆栈信息
很多童鞋在纠结在Cocos2d-x中安卓项目如何调试JNI部分的C++代码,在吃完2个茶叶蛋后我决定放大招。。。本文翻译自:http://www.cocos2d-x.org/forums/6/topics/462251.安卓 NDK-STACK toolNDK-Stack 是一个非常易用的工具,它通过将信息显示到adb logcat中来辅助你分析堆栈追踪,然后用相应的值(哪篇源
2014-03-31 23:38:28
7788
1

原创 【玩转cocos2d-x之三十七】粒子系统的加载优化
Cocos2d-x的粒子系统是通过加载plist生成的。plist包含两部分内容:粒子系统属性和粒子纹理。然而每次调用create都会对plist进行读取解析,如果重复地使用同一个粒子效果,这样的调用明显是低效冗余的。所以我们要做的是,将粒子系统属性和粒子纹理分别抽出。(1)将粒子系统属性预加载并全局保存,避免每次进行读取。(2)粒子纹理可视且可以进行纹理打包,加载粒子纹理就和加载普通的图
2014-03-31 14:21:44
6898

原创 【玩转cocos2d-x之三十六】Flappy Bird大集结
前几天看到cocos2d-x官网论坛让各种姿势的flappy bird霸占了,矮油真受不鸟,你们够啦!!! 今天准备用一个贴来秒杀你们。准备好了么。。。放图镇楼:1.C++版先来个传统版,@OiteBoys童鞋很有爱,将flappy bird用cocos2d-x v3.0写了一遍,同时加入了新的3.0物理系统。在这一系列教
2014-03-28 10:01:52
6617
5

原创 【玩转cocos2d-x之三十五】Earth Warrior 3D大揭秘
3D游戏现在玩起来门槛还是挺高的。不过如果在Cocos2d-x引擎加入3D扩展,实现2.5D游戏效果又会怎么样?1.概述先上大会现场演示图:Apk下载:http://pan.baidu.com/s/1ntM75bV源码下载:https://github.com/chukong/EarthWarrior3D.git,给个star不费电。。。开发环境:Cocos2d-x v
2014-03-24 00:02:54
8887
10

原创 【玩转cocos2d-x之三十四】绘图:CCDrawingPrimitives和CCDrawNode
最近忙出翔了,这年过的也揪心。好久没来更新博客了,今天就来写一写cocos2d-x中图形的绘制。1.概述其实cocos2d-x封装了大量的opengl的绘图函数,我们可以很轻松的在游戏中调用。但是实际上我们很少会这么做,因为编码绘图的方式效率实在太低了,尤其是诸如一些高阶贝塞尔曲线之类的,官方也不建议这么做,使用图像能更有效的提高绘图效率,同时也会更为的美观,也减少了一些精
2014-02-08 08:28:17
8939
2

原创 【玩转cocos2d-x之三十三】游戏嵌入Webview网页
手游《我叫MT》一开始会弹出一个游戏公告,有玩过的肯定都蛮熟悉的,这就是webview,就是一个网页。由于webview和平台相关,这里就介绍下cocos2d-x如何嵌入andorid的webview控件,在cocos2d-x中显示网页。1.JniJni这里我就不再多说了。可用参考wikipedia,或者微信飞机大战的移植篇。通过Jni,可以实现在cocos2d-x中调用Android的API,当然也可以进行传值。2.Android使用webview直接上代码。主要是处理布局和webview
2013-12-26 10:03:15
25409

原创 【玩转cocos2d-x之三十二】xml的解析
cocos2d-x中对xml的解析是采用的TinyXML库,而对plist的解析同时结合了CCDictionary来处理,这里简单介绍下cocos2d-x中解析xml的两种方式,也是常用的xml两个C++解析库:TinyXML和RapidXML。xml被设计用于数据存储和传输,重点是数据内容本身,而不像html,用于表现数据。1.TinyXML1.1.概况T
2013-12-19 08:53:14
9823
8

原创 【玩转cocos2d-x之三十一】弱联网与服务器的通讯
这里采用Apache+php搭建了一个简易服务器,服务端用php语言,客户端采用cocos2d-x的CCHttpClient类通过http方式访问服务端资源。模拟了cocos2d-x提交账户和密码到服务端,服务端校验帐号密码,如果正确返回客户端成功登录,如果错误则返回错误信息,同时在服务端后台保存登录log。第一次接触php,语法上和C/C++还是蛮像的,主要是给出一个cocos2d-x网络实例,
2013-12-16 09:01:41
13809
2

原创 【玩转cocos2d-x之三十】点九图和输入框的使用
登录界面一个帐号/密码输入框或者主角命名框是少不了的。这节就来了解一下点九图的输入框的使用。这里只是介绍使用的基础,并不进行平台的移植,也不处理跨平台可能出现的问题。1.点九图CCScale9Sprite1.1.概述点九图做过移动开发的肯定不会陌生。采用的是PNG点9图,PNG点9图可以自适应各种环境,同时保持伸缩不变形。移动端的UI基本上都是按这个来做的。点9图的制作很简单,
2013-12-13 10:35:54
8699
9

原创 【玩转cocos2d-x之二十九】利用CCClipingNode做游戏遮罩
新手引导是游戏中必备的(除了奇葩的MT用一段动画开始),也是玩家对游戏的第一印象,重要性不言而喻。一般采用的遮罩的形式来突出引导重点,同时屏蔽其他功能。这里简单的介绍一下游戏遮罩的实现,并给出一个示例。1.CCClipingNodeCCClipingNode是一个可裁剪节点,简单理解:(1)首先它是一个节点,继承于CCNode,所以它可以像普通节点一样放入CCLayer,CCS
2013-12-06 10:33:27
13574
6

原创 【玩转cocos2d-x之二十八】cocos2d-x的消息和数据传递
如何在层间或者场景间进行消息传递,大概是每个初学者都要面对的问题吧。这里介绍cocos2d-x的一种消息/数据传递方式,内置的观察者模式,也称消息通知中心,CCNotificationCenter。1.CCNotificationCenterCCNotificationCenter是cocos2d-x提供的一个消息中心,类似于观察者模式,是一个单例类,用于辅助控制消息传递。大概工作
2013-12-03 09:39:17
10392
4

原创 【玩转cocos2d-x之二十七】CCSequence不能执行CCRepeatForever
之前在遇到这么一个问题,在CCSequence中加入CCRepeatForever,发现其他动作执行没问题,就是CCRepeatForever无法执行。代码并没有问题,很奇怪。1.示例[cpp] view plaincopyCCBlink* blink=CCBlink::create(0.5f,10);//创建闪烁动画,dur
2013-11-29 08:40:42
11108
7

原创 【玩转cocos2d-x之二十六】数据结构CCDictionary
CCDictionary在cocos2d-x中被大量的应用,比如CCTexureCache,CCSpriteFramCache等等。1.实现原理1.1.uthashCCDictionary是使用uthash实现的,而过时的CCMutableDictionary则是使用STL实现,就效率而言CCDictionary至少提升了两倍,而且CCDictionary并没有
2013-11-26 08:47:05
9926
1

原创 【玩转cocos2d-x之二十五】数据结构CCArray
CCArray是从cocos2d中移植过来的,类似于Apple的NSMutableArray,但是比NSMutableArray更为的好用。要注意的是虽然CCArray和CCDictionary可以管理cocos2d-x中绝大多数的类,但是仍然无法替代STL库,STL库更为强有力。1.API先看一下CCArray可以帮我们做什么。1.1.创建[c
2013-11-25 08:58:26
10130
1

原创 【玩转cocos2d-x之二十四】截图保存功能的实现
官方TestCpp有这个demo了,这里还是把它单独拖出来写一下,游戏推广的一个很重要组成就是玩家分享,所以游戏截图就起到很大作用了。截图功能通过CCRenderTexture实现。1.CCRenderTextureCCRenderTexture是一个通用渲染对象,可以通过构建一个CCRenderTexture对象,进而把要渲染的东西填充进去,在渲染开始前调用call函数,调用co
2013-11-13 08:41:13
10447

原创 【玩转cocos2d-x之二十三】多线程和同步03-图片异步加载
cocos2d-x中和Android,Windows都一样,如果在主线程中处理一些耗时操作,那么主线程就会出现阻塞现象,表现在界面上就是卡住,未响应等情况。为了避免这种情况的出现,我们需要在后台开辟工作线程进行数据的处理,再采用消息传递或者其他形式来通知主线程进行UI变化。最常见的情况就是游戏进入前的loading。1.图片的异步加载在多线程和同步的第一篇就有介绍到使用pthrea
2013-11-11 09:47:29
14528
6

原创 【玩转cocos2d-x之二十二】多线程和同步02-售票
pthread有很多不同应用,官网都有相应的API解释和Sample,这里不再重复,本文主要介绍cocos2d-x中一个多线程和同步示例。1.卖票孙鑫老师的C++和Java多线程卖票一直让我念念不忘,好吧,这里用cocos2d-x和pthread实现一个吧。总共有100张火车票,有2个售票点A和B再售票,当票卖完了就结束了。我们知道当程序一开始进程就会创建一个主线程,我们可以在主线
2013-11-05 10:15:34
6468

原创 【玩转cocos2d-x之二十一】多线程和同步01-pthread库
和其他框架一样,cocos2d-x允许我们使用多线程进行编程。cocos2d-x使用的是pthread库,是一套用户级线程库,被广泛地使用在跨平台应用上。1.配置在使用pthread之前,需要把头文件和库文件链接进来。pthread的官网戳这里,当然cocos2d-x帮我们包含进引擎了。1.1.头文件pthread.h放在\cocos2d-x目录\cocos2dx\plat
2013-11-04 10:41:50
11915
23

原创 【玩转cocos2d-x之二十】从CCObject看cocos2d-x的内存管理机制
再看CCObject,剔除上节的拷贝相关,以及Lua脚本相关的属性和方法后,CCObject还剩下什么?1.剩下什么?可以看到整个CCObject就是围绕着m_uReference和m_uAutoReleaseCount在转。这两个变量的解释如下。所以CCObject剩下的其实就是对内存的管理。CCObject::CCObject(void)//构造函数: m_nLuaI
2013-10-31 09:09:13
6714
2

原创 【玩转cocos2d-x之十九】从CCObject看cocos2d-x的拷贝机制
CCObject在之前的文章中出现了N次,它扮演了一个老祖宗的角色,但是它到底是做什么的?先从它看看cocos2d-x的拷贝机制吧。1.CCCopyingCCObject从CCCopying继承而来,而CCCopying拥有唯一的虚函数copyWithZone,这个函数可以认为是拷贝的一个协议,所有继承了CCObject并且需要实现拷贝功能的子类都可以通过它来实现,它的源码很简单,
2013-10-30 08:13:30
7855
1

原创 【玩转cocos2d-x之十八】仿《中国好学霸》文字拖拽和定位
现在各种猜成语猜歌名好学霸之类的游戏火的一塌糊涂。本节就介绍下文字的拖拽和定位。1.基本原理其实这只是精灵的简单拖拽和坐标的识别而已。当触摸点在精灵的范围内,精灵可以感应拖动,当触摸结束进行位置判断,如果在有效范围内就进行自动定位。2.实现2.1.背景加入和文字精灵的加入这里是采用这一节http://blog.youkuaiyun.com/jackystudio/artic
2013-10-28 08:49:59
6893
11

原创 【玩转cocos2d-x之十七】cocos2d-x中文显示
cocos2d-x的中文显示其实就是一个UTF-8编码在作怪而已,一种简单的方法就是把文本保存为UTF-8编码即可(注意不是UTF-8 + BOM),建议使用UE,Sublime Text或者EditPlus之类的本文编辑器。这里介绍另一种方法:通过读取xml文件显示中文,这种方法更利于软件的国际化,demo顺便实现了中英文切换。1.xml文件先写好一个xml文件(CHN_
2013-10-25 08:20:25
8975
4

原创 【玩转cocos2d-x之十六】滚动字幕和公告
滚动字幕和公告是游戏中经常使用到的元素,本文大致写一下实现方法,至于例子中具体的坐标值,请不要纠结。。。这和美工关系还是蛮大的。我PS技术太搓了。。。1.原理其实它们的实现都是简单的通过调用update来更新位置达到的移动效果,和背景滚动有点类似,一旦滚动结束就重置为起点,开始新的滚动。只是为了达到在某个区域内滚动而不至于超出这个区域,有时候会用一些前景图来做遮盖,所以这个
2013-10-24 08:19:50
9423
1

原创 【玩转cocos2d-x之十五】关卡选择的设计
这节介绍一下游戏中帮助界面和关卡选择的设计,其实都是一样的,关键在于美工。这里采用自定义TableView层来实现。1.导入头文件和设定空间因为TableView相关的类是在扩展包里面,所以必须先声明[cpp] view plaincopy#include "cocos-ext.h" USING_NS_CC_EX
2013-10-23 09:35:26
8440
6

原创 【玩转cocos2d-x之十四】菜单选项卡的实现
有时候,我们希望实现一个选项卡功能,就是切换tab选项,场景中的内容会跟着改变,但是tab选项卡不动。这是用切换场景的方式没办法做到的。这里我们就可以使用CCLayerMutiComplex来实现这个功能。1.创建布景这里创建3个布景来做示范。分别是Laye1,Layer2和Layer3。代码就不贴了,布景内容可以直接使用HelloWorld的代码。
2013-10-22 08:15:44
7661
3

原创 【玩转cocos2d-x之十三】CCMenu的布局
前两天写个游戏,发现CCMenu的布局还是比较有意思的,这里总结一下,以便后用。1.概况CCMenu是cocos2d-x的菜单类,但它本身并不具备菜单具体属性,而是作为一个父节点,将一些具体类型的菜单添加进去来达到菜单目的的。我们正常会这么使用它:先创建子菜单项CCMenuItem,然后将子菜单项CCMenuItem加入菜单CCMenu,最后把CCMenu加入当前层CCLa
2013-10-21 09:30:28
9911
1

原创 【玩转cocos2d-x之十二】plist解析工具:Anti_TexturePacker
原创作品,转载请标明:http://blog.youkuaiyun.com/jackystudio/article/details/12867863之前拿了一些别人的图片素材,是用TexturePacker打包合成的,结果写程序的时候不知道每个合成前小png图的名字是什么,只能一个一个从plist文件中找,然后猜测对应的名字,再进行显示,如果不对,还要继续猜。。。坑爹啊,效率大大降低了,时间都耗在找...
2013-10-19 08:11:33
30695
32

原创 【玩转cocos2d-x之十一】定时器schedule
如果我们想定时执行一个动作怎么办?CCScheduler帮了我们一个大忙。1.概况CCNode内部封装了一个[cpp] view plaincopyCCScheduler *m_pScheduler; 正是通过它我们可以很轻松地完成一些定时功能,所以定时器是节点所具备的功能。定时器分为2种
2013-10-18 09:22:03
21468

原创 【玩转cocos2d-x之十】cocos2d-x坐标系
cocos2d-x采用的是笛卡尔平面坐标系,也就是平面上两条垂直线构成的坐标系,平面上任意一点都可以用(x,y)来表示。(1)就坐标系方向而言,cocos2d-x分为屏幕坐标系和OpenGL坐标系。(2)就节点本身而言,cocos2d-x分为绝对坐标系和相对坐标系。1.屏幕坐标系屏幕坐标系,也叫UIKit坐标系,原点在屏幕左上,x轴向右,y轴向下。cocos
2013-10-17 08:08:48
14216
5

原创 【玩转cocos2d-x之九】动作类CCAction
精灵也出来了,但是不会动的精灵是木有用的。。。CCAction就是负责来解决精灵运动的问题。1.概况CCAction直接从CCObject继承而来,注意它代表的是一个动作,是动词。精灵执行了这个动作,而不是名词。CCAction本身并没有什么功能,主要是定义了一些通用函数和虚函数让子类实现多态性。2.接口[cpp] vie
2013-10-16 08:17:39
8853
1

原创 【玩转cocos2d-x之八】精灵类CCSprite
精灵类CCSprite可以说是游戏的主角了,也是我们平时最常用到的类。1.概况CCSprite本质上就是一个二维图片,是静态的。游戏中的动画只不过是让一张张静态图片快速更换达到的动态效果。CCSprite继承于CCNodeRGBA,并实现了CCTextureProtocol的接口。因此CCNodeRGBA所具有的RGB和透明值这些属性和接口CCSprite都有,
2013-10-15 11:39:22
10197

原创 【玩转cocos2d-x之七】场景类CCScene和布景类CCLayer
场景类CCScene和布景类CCLayer都是作为一个容器来使用,这里简单地看下它们的实现:1.场景类:CCSceneCCScene类继承于CCNode,它的实现很简单,就是基本上没添加什么内容。。。它只是作为一个容器(父节点)的抽象概念存在。对比CCNode差别有:(1)构造函数中设置了不使用锚点定位,而是使用了坐标原点,即使设置了锚点也不起作用。
2013-10-14 14:34:25
9423
1

原创 【玩转cocos2d-x之六】节点类CCNode
节点类CCNode可以说是游戏元素的祖宗了,基本上我们看得到的游戏元素都是以它为原型进行扩展的。像CCScene,CCLayer,CCSprite,CCMenu,CCSpriteBatchNode等等都是从CCNode继承而来。另外如果我们要自定义精灵,那么从CCNode继承也是一个很不错的选择。1.概况CCNode直接从CCObject继承而来,有如下几个特点:(1)
2013-10-14 08:24:33
10207
2

原创 【玩转cocos2d-x之五】导演类CCDirector
既然cocos2d-x都帮我们封装好了,使得开发与平台无关,那接下来我们就单纯地开始好好玩游戏吧!这几篇是对cocos2d-x一些基本且重要的元素进行解释和API介绍,之前没有系统的看过API,有时候某些功能引擎都已经提供好了,不知道还是会自己去写。所以全面地了解一下是必须的。1.概况导演类CCDirector是cocos2d-x引擎中非常重要的一个类,它是一个抽象
2013-10-12 08:46:36
9989
1

原创 【玩转cocos2d-x之四】cocos2d-x怎么实现跨平台
cocos2d-x到底是这样实现跨平台的呢?这里以Win32和Android为例。1.跨平台项目目录结构先看一下一个项目创建后的目录结构吧!这还是以HelloCpp为例。 从左边目录可以看到,Classes和Resource已经平台无关了,而Classes中包含了AppDelegate类,因此我们可以认为AppDelegate是与
2013-10-11 08:36:02
14817
1

原创 【玩转cocos2d-x之三】cocos2d-x游戏是怎么跑起来的
虽然cocos2d-x v3.0 alpha版已经出来了,也改进了不少,有兴趣的可以去尝尝鲜。因为后面可能还会配合cocoStudio写一下博客,而现在v1.0.0.0版本需要配合cocos2d-x v2.2.0使用。所以这里选择了V2.2.0版的cocos2d-x。一个新的东西,从头开始吧!从HelloWorld出发看一下一个cocos2d-x游戏是怎么跑起来的。先看看它的结
2013-10-10 08:14:53
11159
3

原创 【玩转cocos2d-x之二】游戏和引擎构成
1.游戏构成我们以超级马里奥游戏作为蓝本来描述一下一个游戏的构成。1.首先我们需要一个容器来放置游戏元素,每一个关卡都是一个容器,这叫场景。2.蓝天白云,各种板砖水管,这些是布景,放置在关卡中,通过布景的叠加,构成了游戏的主要背景。3.主角马里奥兄弟和各种小怪兽,这些叫精灵。这是游戏互动的主要元素。4.马里奥可以走路,可以跳跃,可以发射子弹。这些是精灵的动作。5.过关了,要
2013-10-09 10:38:55
7486

原创 【玩转cocos2d-x之一】V2.2.0版本开发环境配置
现在cocos2d-x处在上升期,各个版本的变化还是比较大的,单从环境配置来看,从v2.0到v2.2就变化了不少。今天配置了一下V2.2.0环境,创建项目,并进行交叉编译,发现比之前麻烦了不少。这里稍微记录一下。3.0版本出来了,大概看了下目录和2.2的差不多,环境配置也基本一样。1.VS,VA,Cygwin,Java,Eclipse,ADT,SDK,NDK这里就不重复啰嗦这些了,
2013-10-08 14:11:56
19756
35
Anti_TexturePacker v1.2
2013-10-23
Anti_TexturePacker v1.1
2013-10-21
Anti_TexurePacker
2013-10-19
Anti_TexturePacker for mac.zip
2019-06-24
exe文件Anti_TexturePacker v1.7
2015-01-21
Cocos2d-x opengl shader file
2014-04-17
Anti_TexturePacker v1.6
2014-02-08
Anti_TexturePacker v1.5
2014-02-07
Anti_TexturePacker v1.4
2014-01-25
高仿QQ新闻右下角弹窗MFC/Win32版
2014-01-09
cocos2d-x嵌入webview
2013-12-26
Anti_TexturePacker v1.3
2013-12-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人