|
07 2013 档案
摘要:转自:http://blog.ch-wind.com/cocos2d-x%E4%B8%ADmask%E7%9A%84%E5%AE%9E%E7%8E%B0%E5%8F%8A%E4%BC%98%E5%8C%96/关于cocos2d-x内的Mask来做类似光点或者视野控制等功能的思路,最早是在一篇外文上看到的。拿来用过之后发现效果还是不错,于是直接放进了程序里。可是在实际运用时发现其运行效率不是那么理想,尤其是以pc平台为目标时由于配置不同造成的帧率下降比较明显。对代码进行分析之后发现,Mask的功能使用的是CCRenderTexture动态生成纹理并覆盖在目标层上的。在每一次绘制中,这个纹理都会重
阅读全文
摘要:转自:http://www.cnblogs.com/dcxing/archive/2013/01/16/2862068.htmlCCTableView在游戏中一般用在背包这样场景或层中,当然也不止这些,在ios开发中UITableView的应用是相当的广泛,当然它们的用途是一样的。(其实你会发现CCtableView其实就是参照UITableView来写的,所以做过ios开发的同学happy了)。既然说到了用到背包的地方,那么我们就做一个简单的背包信息的例子来学习它吧。 先上代码再说 .h文件//// CCTableViewLayer.h// Cocos2dXLearnDemo////#...
阅读全文
摘要:转自:http://www.cnblogs.com/dcxing/archive/2012/12/31/2840217.htmlScrollView一般用在游戏的关卡选择这种类似的场景还有帮助这种场景之中,当然,也可以用其他一些选择菜单的场景。用途还是比较广泛的嘛。首先CCScrollView 在 Cocosd-x 的扩展库里面,要是使用的话,需要引入扩展包,然后添加命名空间#include "cocos-ext.h"USING_NS_CC_EXT;//cocos2dx定义的宏 然后实现CCScrollViewDelegate,这个其实是和UISCrollView和相似的。
阅读全文
摘要:转自:http://blog.csdn.net/wuxunfeng/article/details/5286540 平时对网络编程方面比较感兴趣,看了一些相关的资料,自己也尝试写过一些不同网络模型的服务程序。这次刚好有一个新的需求,需要开发一个转发服务器。之前开发的项目,网络通讯都是处理联机交易的,网络连接都是采用短连接,这次的服务端,采用长连接的方式。1. 轮询和主动通知选择 公司有一个客户端产品(CLIENT),因为需要从多个客户的服务端获(SERVER)取信息,原有的设计是每个客户端通过SOCKET不断的轮询访问服务端获取信息。当CLIENT的数量不多时,轮询访问对服务端压力不大,但是.
阅读全文
摘要:转自:http://www.cppblog.com/twzheng/articles/21020.html 采用类的机制后实现了数据的隐藏与封装,类的数据成员一般定义为私有成员,成员函数一般定义为公有的,依此提供类与外界间的通信接口。但是,有时需要定义一些函数,这些函数不是类的一部分,但又需要频繁地访问类的数据成员,这时可以将这些函数定义为该函数的友元函数。除了友元函数外,还有友元类,两者统称为友元。友元的作用是提高了程序的运行效率(即减少了类型检查和安全性检查等都需要时间开销),但它破坏了类的封装性和隐藏性,使得非成员函数可以访问类的私有成员。友元函数:友元函数是可以直接访问类的私有成员的.
阅读全文
摘要:转自:http://blog.csdn.net/onerain88/article/details/81642101. CCArray只是提供了一个面向对象的封装类其继承于CCObject类(CCObject的存在主要是为了自动管理内存),并提供了一系列接口,包括创建/** Create an array */ static CCArray* create(); /** Create an array with some objects */ static CCArray* create(CCObject* pObject, ...); /** Create an array with...
阅读全文
摘要:转自:http://www.himigame.com/iphone-cocos2dx/1354.html首先说明一个问题:为什么要在线更新资源和脚本文件!?对于此问题,那要说的太多了,简单概括,如果你的项目已经在google play 或Apple Store 等平台上架了,那么当你项目需要做一些活动或者修改前端的一些代码等那么你需要重新提交一个新版本给平台,这时候你的上架时候是个不确定的时候,具体什么时候能上架,主要跟平台有关,你再着急,也没有用的。那么如果你的项目是使用脚本语言进行编写的,例如lua,js等等,那么一旦你有需要更新你的项目,你完全可以通过从服务器下载最新的脚本和资源来实现在
阅读全文
摘要:转自:http://blog.csdn.net/honghaier/article/details/8068895 当一张图片被加载到内存后,它是以纹理的形式存在的。纹理是什么东西呢?纹理就是一块内存,这块内存中存放的是按照指定的像素格式填充的图片像素信息。它被最终作为三角面着色所依据的数据源。 我们来看一下cocos2d-x中的libcocos2d库,其下有许多目录,找到textures展开,可以看到有CCTexture2D,CCTextureAtlas,CCTextureCache,CCTexturePVR四个类。这四个类的功能分别是: CCTexture2D: 纹理,即图片加载入内...
阅读全文
摘要:转自:http://blog.csdn.net/ufolr/article/details/7447773 在cocos2d中,系统提供了CCMove、CCJump、CCBezier(贝塞尔曲线)等让精灵移动的action,但是有时候,为了让程序看上不不是那么的呆板,或者为了实现某些特定的功能,我们需要让精灵按照我们自己设定的路径(曲线运动)来移动。这就是这位篇文章我们需要讨论的话题。 自己开始也很纠结cocos2dx没有提供更多的action动作,比如说我们要做个抛物线什么的,虽然可以用贝塞尔曲线来模拟。用贝塞尔曲线扔个飞镖什么的倒是还不错,但当你需要重复执行action时,问题就...
阅读全文
摘要:转自:http://blog.csdn.net/ufolr/article/details/7624851最近项目中需要一个落叶的效果,本来想用粒子特效来实现,但是几经调试,虽然调出了落叶的效果,但是并不是十分理想,最大的不足就是落叶是平面的,没有立体感,虽然把落叶做小之后却是立体感的感觉会有所缓解,但总不能把树叶无限的缩小吧,而且立体感的缺失在粒子特效中确实是一个始终存在的问题。作为一个最求品质的程序猿,最终还是决定自己设精灵动作来实现。 在分析了粒子特效实现的原理并在国内外论坛上爬了半天,最后边实验边修改,终于完成了一个可行的仿真感较强的立体的落叶效果,现在就拿出来跟大家分享一下。原理-&
阅读全文
摘要:转自:http://www.cocos2dev.com/?p=322做网络游戏时,服务器的时间在本地显示的时候要转成本地时间,可以利用系统函数转化。long long int timeSec = "1353735416";//假如这是服务器的时间char str[64] = {0};time_t timep = timeSec;sprintf(str, "%s",asctime(gmtime(&timep)));str是 星期+日期+时间如果希望自己定义格式,用下面的办法也可以。long long int timeSec = "1353
阅读全文
摘要:转自:http://www.cocos2dev.com/?p=295前段时间看CCEditBox的时候,发现里面有个利用9宫格图缩放图片的,也就是缩放带圆角的图片。这个比较有用处,很多游戏中有很多不同尺寸的圆角图片作为背景。有了CCScale9Sprite之后,只需要提供一个非常小尺寸的圆角图片就可以自由缩放其他尺寸的圆角图。是个不错的东西。使用方法:1、导入头文件及命名空间#include “cocos-ext.h”USING_NS_CC_EXT;2、初始化代码:CCScale9Sprite* labBg1 = CCScale9Sprite::create(“wd_bg_text.png”)
阅读全文
摘要:转自:http://blog.csdn.net/onerain88/article/details/7641126cocos2d-x 2.0 版更新了,把opengl 1.1 替换为opengl 2.0,这个版本只能在iphone 3gs,android 2.2 以上版本才能跑,并且android的模拟器也不支持!这次更新终于更新了几个UI控件,比如Button,Slider,ListView(本来打算自己写个ListView的,这下省事了,看到注释,这里要感谢网龙公司了,当然,还要感谢cocos2d-x的整合)。但是这个tests中没有加入对ListView的使用教程,只有在CCTextur
阅读全文
摘要:转自:http://blog.csdn.net/onerain88/article/details/7775569cocos2d-x 2.0版本之后提供了许多控件,其中就包括ScrollView,之前总结过一个简单的ScrollView,但是问题很多,比如必须是全屏,不能是一块区域,而cocos2d-x 2.0中提供的CCScrollView中,是可以设定区域的,CCScrollView做了区域的裁剪glScissor((GLint)screenPos.x, (GLint)screenPos.y, (GLsizei)(m_tViewSize.width*s), (GLsizei)(m_tVie
阅读全文
摘要:转自:http://blog.csdn.net/zhy_cheng/article/details/8480048图形绘制的话,在cocos2d-x自带的TestCpp里有,包括绘制点,直线,多边形(填充的和没有填充的),圆,贝赛尔曲线。首先在HelloWorld类中重写父类的draw方法virtual void draw(); 在源文件中将init中的类容删去,应为init方法比draw先执行,会覆盖我们画出的效果。删除之后,init方法如下bool HelloWorld::init(){ bool bRet = false; do { CC_BREAK_...
阅读全文
摘要:转自:http://blog.csdn.net/zhy_cheng/article/details/9116479cocos2d-x引擎在内部实现了一个庞大的主循环,每帧之间更新界面,如果耗时的操作放到了主线程中,游戏的界面就会卡,这是不能容忍的,游戏最基本的条件就是流畅性,这就是为什么游戏开发选择C++的原因。另外现在双核手机和四核手机越来越普遍了,是时候使用多线程来挖掘硬件的潜力了。1.环境搭建cocos2d-x中的多线程使用pthread就可以实现跨平台,而且也不是很难理解。使用pthread需要先配置一下工程。右击工程----->属性----->配置属性---->链接
阅读全文
摘要:转自:http://blog.csdn.net/hgplan/article/details/8629904在cocos2d-x中可以用.plist格式的文件来保存数据,它是XML文件格式的一种,在cocos2d-x解析.plist方面相关的资料比较少,但本身也很简单,要解析.plist文件可以参考cocos2d-x类库中的CCSpriteFrameCache类和CCParticleSystem类,它主要是使用CCDictionary类来对.plist文件进行操作。下面有一个.plist文件: level1 bg_far_scene ...
阅读全文
摘要:转自:http://www.cnblogs.com/jisi5789/p/3190353.html回顾前面的文章,实现了一个简单工厂模式来创建不同类对象,但由于c++没有类似new "Circle"之类的语法,导致CreateShape 函数中需要不断地ifelse地去判断,如果有多个不同类对象需要创建,显然这是很费神的,下面通过宏定义注册的方法来实现动态创建对象。Shape.h:#ifndef _SHAPE_H_ #define _SHAPE_H_ class Shape { public: virtual void Draw() = 0; virtual ~Shap..
阅读全文
摘要:转自:http://blog.csdn.net/yang3wei/article/details/7795764最近的项目要求动态光晕的效果。何谓动态光晕?之前不知道别人怎么称呼这个效果,不过在我看来,“动态光晕”这个名儿起的还是蛮不错的。动态光晕就是在背景图片的上面蒙上一层光照。。。但是这个光照比较特别,他能够变换颜色,变换光圈的半径大小,从而制造出类似梦幻迷离的效果~新项目中我是负责游戏特效这一块的,操作过程中我觉得这东西蛮不错的,很有感觉。之前的项目中我是负责整个游戏场景的编码实现的,因为较为复杂的游戏逻辑,所以我做的很蛋痛~伙计做的是菜单场景以及所有游戏的图片,那时候我便觉得,其实做美
阅读全文
摘要:转自:http://blog.csdn.net/qiurisuixiang/article/details/87795401在CSDN上看到某同学实现的Dota技能冷却效果,自己平时也玩Dota,也很好奇技能冷却的效果是怎么实现的,所以就尝试着实现了下2其实技能CD的原理很简单:准备两张图片,一张明一张暗,将暗的图片放在地下,明的图片放在上面(注意:两张图片大小一致,明的图片完全覆盖暗的图片),然后主要是对上面明的图片进行进度操作3知道了原来,实现起来就很简单了,下面附上关键代码CCSprite *coolSprite = CCSprite::create("cool.png&quo
阅读全文
摘要:转自:http://www.cnblogs.com/jiackyan/archive/2013/04/14/3019880.html1、先说下渲染批次:这是游戏引擎中一个比较重要的优化指标,指的是一次渲染凋用。也就是说,渲染的次数越少,游戏的运行效率越高。2、CCSpriteBatchNode就是cocos2d-x为了降低渲染批次而建立的一个专门管理精灵的类。CCSpriteBatchNode* batchNode = CCSpriteBatchNode::create("Icon.png", 1000); batchNode->setPosition(CCPoint
阅读全文
摘要:转自:http://www.cnblogs.com/jiackyan/archive/2013/04/14/3019893.html//重载virtual bool ccTouchBegan(CCTouch *touch, CCEvent *pEvent);virtual void ccTouchMoved(CCTouch *touch, CCEvent *pEvent);virtual void ccTouchEnded(CCTouch *touch, CCEvent *pEvent);virtual void onEnter();virtual void onExit(); //添加支持触
阅读全文
摘要:转自:http://www.himigame.com/iphone-cocos2dx/743.htmlCocos2dx系列博文的上一篇详细介绍了如何在Xcode中利用jni调用Android的Java层代码,还没有看过的童鞋,请移步到如下博文:【iOS-cocos2d-X 游戏开发之十三】详细讲解在Xcode中利用预编译并通过Jni调用Android的Java层代码(cocos2dx里访问调用Android函数)!本篇继续介绍另外一个在Cocos2dx中必经之路:在Cocos2dx中调用苹果Api以实现后期iOS的GameCenter和iap的相关操作,那么Himi这里就跟大家简单分享探讨下;
阅读全文
摘要:转自:http://www.cnblogs.com/lancidie/archive/2013/04/08/3007566.html一、xcode4中的环境变量$(BUILT_PRODUCTS_DIR)build成功后的,最终产品路径--可以在Build Settings参数的Per-configuration Build Products Path项里设置$(TARGET_NAME)目标工程名称$(SRCROOT)工程文件(比如Nuno.xcodeproj)的路径$(CURRENT_PROJECT_VERSION)当前工程版本号其他:当编译静态库,设备选模拟器(iPhone 5.0 Simu
阅读全文
摘要:转自:http://www.cnblogs.com/lancidie/archive/2013/04/13/3019375.html1、不是一个完整的模块,所以不提供完整代码,只提供思路和核心代码。 思路很简单,给每个纹理维护一个生命周期和上次渲染时间,每次渲染的时候更新这个渲染时间,CCTextureCache中每隔一定时间(15秒)遍历一下当前纹理集合,如果发现有纹理超过生命周期指定时间没有渲染,则释放此纹理。 CCTexture2D中的getName函数就是很好的更新渲染时间以及释放纹理重新加载的入口。 因为CCTexture2D要提供重新加载图片的机制,所以最好提供一个initWith
阅读全文
摘要:转自:http://www.cnblogs.com/lancidie/archive/2013/04/01/2993890.html我们常常需要判断用户的点击操作是否落于某个sprite之上,进而让这个sprite做出响应。但是如果我们通过继承CCSprite类来实现自己的Sprite类的时候,产生的视图尺寸会充满屏幕。多个Sprite在同一层的时候会发生重叠,导致我们通过回调函数传递进的touch点是相对于最上层Sprite来说的。好在我们可以通过CCDirector::sharedDirector()->convertToGL(CCTouch* touch->locationI
阅读全文
摘要:转自:http://www.cnblogs.com/fox7nights/archive/2013/02/21/2920640.html一。调用代码CCNode* GameOverScene::loadCCBI(const char * pCCBFileName, const char * pCCNodeName, CCNodeLoader * pCCNodeLoader){ CCNodeLoaderLibrary * ccNodeLoaderLibrary = CCNodeLoaderLibrary::newDefaultCCNodeLoaderLibrary(); if...
阅读全文
摘要:转自:http://www.cnblogs.com/fjut/archive/2012/04/28/2475693.html//ccTouchBegan必须实现,否则会报错bool PicScan::ccTouchBegan(CCTouch* pTouch, CCEvent* event){ return true;} void PicScan::ccTouchMoved(CCTouch *touch, CCEvent *event){ //获得触摸点初始坐标 CCPoint beginLoc = touch->locationInView(touch->view()); ...
阅读全文
摘要:转自:http://www.2cto.com/kf/201307/227142.html 既然选择了C++作为游戏开发的语言, 手动的管理内存是难以避免的, 而Cocos2d-x的仿Objctive-C的内存管理方式, 事实上让问题变得更加复杂(仅仅是移植更加方便了), 因为你需要很好的掌握两种语言的内存管理方式, 并且在使用时头脑清晰, 不能混用, 不然等待你的就是无穷的噩梦, 因为引用计数的原因, 问题比起纯粹的C++内存泄漏还要难以定位的多. 这里统一的整理一下目前在Cocos2d-x中的内存管理相关的方法和问题. 为了让思路更加清晰, 我提及的不仅仅是具体在Cocos2d-x中怎么..
阅读全文
摘要:转自:http://www.2cto.com/kf/201207/144656.html 蒙板,局部高亮可点的用处大多是在新手引导的时候,引导玩家一步一步的走游戏的操作流程。 之前写了一个cocos2d-iphone的版本,因为设置成圆角的,比较美观,如果不用圆角,可以直接把Sprite改成layercolor,这个版本的缺点是每步都需要美术出一个资源(如果每步的点击区域大小不一样的话),现在这个版本是直接设置大小即可。 这个版本的设计思路是,用layercolor,先把高亮的区域设置好了,然后在layercolor的四个角加上一个小圆角的sprite,这样就不用每步都需要美术出资源了。...
阅读全文
摘要:转自:http://www.cocos2dev.com/?p=281注:自己以前也写过cocos2d-x如何优化内存的使用,以及内存不足的情况下怎么处理游戏。今天在微博中看到有朋友介绍了下内存,挺详细的。不知道是谁写的,我记录下。一,IOS与图片内存在IOS上,图片会被自动缩放到2的N次方大小。比如一张1024*1025的图片,占用的内存与一张1024*2048的图片是一致的。图片占用内存大小的计算的公式是;长*宽*4。这样一张512*512 占用的内存就是 512*512*4 = 1M。其他尺寸以此类推。(ps:IOS上支持的最大尺寸为2048*2048)。二,cocos2d-x 的图片缓存
阅读全文
摘要:转自:http://blog.csdn.net/enotswn/article/details/5934938考虑可能的原因:[0]出现无法解析可能是因为lib文件不正确,比如64位的编译配置,结果使用的是32位的lib包.[1]只写了类声明,但还没有写实现类,造成调用时无法解析[2]声明和定义没有统一,造成链接不一致,无法解析[3]没有在项目属性页的链接器的命令行选项加入相应的类包。[4]没有在c++包含目录和库目录加入相应的类包路径[5]在测试工程中被测文件目录可能需要包含被测类的cpp定义文件[6]ICE接口测试时,无法解析可能因为被测文件没有包含进相关的cpp文件,另外,在TestSu
阅读全文
摘要:转自:http://www.2cto.com/kf/201212/179828.html 在TestCpp中的EffectsTest示例中展示了一些屏幕特效,它是将屏幕划分为多个格子,并对这些格子进行了动画处理从而产生出相应的屏幕特效。今天我们来学习一下这些动画。主要是涉及到以下几个文件:CCGrid.h /cpp :网格数据及渲染,包括基本网格数据和3D网格数据,这是数据的基础。CCActionGrid.h /cpp :网格基本动画,这是动画的基础。CCActionGrid3D.h/cpp: 3D网格基本动画,这是3D网格动画的基础。CCActionTiledGrid.h / cpp :网格
阅读全文
摘要:转自:http://cjhworld.blog.163.com/blog/static/207078036201331510141222/数学函数:ccp(x, y); // 以坐标x,y创建一个向量ccpFromSize(s); // 以size s的width为x,height为y创建一个向量 CCPoint的加减乘除运算运算ccpAdd(v1, v2); // 等价 ccp(v1.x+v2.x, v1.y+v2.y);ccpSub(v1, v2); // 等价 ccp(v1.x-v2.x, v1.y-v2.y);ccpNeg(v) // 等价 ccp(-v.x, -v.y);ccpMul
阅读全文
摘要:转自:http://cjhworld.blog.163.com/blog/static/20707803620132693629307/1.按照Cocos2d的编程风格,尽量少用构造函数,用init()进行初始化,构造函数可以适当作为变量的初始化,create的静态初始化函数需要重载,即重写create2.当需要派生一个新的类时,不能通过父类的create直接创建,具体的可以在debug时从类指针上看到实际类型并不相符3.dealloc函数在C++下是析构函数,需要负责安全release各种变量,即使用CC_SAFE_RELEASE来安全释放4.内存管理方式5.首先必须要注意的一点,在Obje
阅读全文
摘要:转自:http://shansun123.iteye.com/blog/680066这种错误的意思一般是指访问了不属于自己的内存空间,出现这种错误有几种原因:1、给一个数组分配了比较小的内存空间,然后又给该数组赋了一个比较大的值,举例说明:char buf[80]; buf = "C++“读取位置 0x****** 时发生访问冲突”的可能原因C++“读取位置 0x****** 时发生访问冲突”的可能原因"; 解决方法:给数组分配更大一些的内存空间,如char buf[1000];2、句柄或指针在使用前被释放解决方法:检查代码配合调试,揪出野指针3、在以后的使用中遇到了再添加
阅读全文
摘要:转自:http://shanbei.info/the-cocos2d-scene-conversion-method-execution-order.html如果你希望在场景转换的过程中使用过渡效果的话,你可能想 先暂停某些动画或者隐藏一些用户界面元素,直到过渡效果结束。这就需要所 有的节点都存在于当前的场景中。以下来自从FirstScene过度到OtherScene的日志信息 显示了上述三个方法的调用次序:1. scene: OtherScene2. init:3. onEnter:4. // 这里运行了过渡效果5. onExit:6. onEnterTransitionDidFinish:
阅读全文
摘要:转自:http://bbs.9ria.com/thread-216948-1-10.html聊天输入框(单行输入框 ,多行可自己扩展)实现功能:1.普通输入2.设置输入框显示最大宽度(PT值,cocos2d-x坐标值)3.设置输入框允许的最大字符数量(字符Unicode)4.输入框自动缩进(当输入字符串数量超过显示框最大宽度时,会自动向左缩进,显示最新字符串输入框实现代码头文件:#ifndef CursorInputDemo_CursorTextField_h#define CursorInputDemo_CursorTextField_h#include "cocos2d.h&qu
阅读全文
摘要:转自:http://blog.csdn.net/qq51931373/article/details/91522271.纹理控制。 看此代码:CCSprite *pSprite = CCSprite::create("ship.png");ccTexParams params = {GL_NEAREST,GL_NEAREST,GL_CLAMP_TO_EDGE, GL_CLAMP_TO_EDGE};pSprite->getTexture()->setTexParameters(¶ms);上面最重要的函数就是setTexParameters();他就
阅读全文
摘要:转自:http://blog.sina.com.cn/s/blog_61ece099010187tl.html手势之前也发过一篇,但是我感觉那个还不够轻巧。 而且大多数游戏里面不会有那么复杂的手势,今天给大家分享下只有简单方向、圆形手势的代码。virtual void ccTouchesBegan(CCSet *pTouches, CCEvent *pEvent);virtual void ccTouchesMoved(CCSet *pTouches, CCEvent *pEvent);virtual void ccTouchesEnded(CCSet *pTouches, CCEvent *
阅读全文
摘要:转自:http://home.cnblogs.com/group/topic/57609.htmlcocos2d坐标系(OPenGL坐标系):以左下角为原点,x向右,y向上屏幕坐标系(android,ios,win32系统的坐标系):以左上角为原点,X轴向右为正,y轴向下为正在cocos2dx的test例子中:void TestController::ccTouchesBegan(CCSet *pTouches, CCEvent *pEvent){ CCSetIterator it = pTouches->begin(); CCTouch* touch = (CCTouch*)(*...
阅读全文
摘要:转自:http://blog.csdn.net/tangaowen/article/details/8878193//default language is local languageccLanguageType currentLanguageType = CCApplication::sharedApplication()->getCurrentLanguage();switch (currentLanguageType){ case kLanguageEnglish: language_ = "english"; b...
阅读全文
摘要:转自:http://novacreo.com/%E7%A8%8B%E5%BA%8F%E7%BB%84/cocos2d-x%E5%8A%A8%E7%94%BB%E5%8A%A0%E9%80%9F%E4%B8%8E%E5%87%8F%E9%80%9F/动画是游戏的必然要素之一,在整个游戏过程中,又有着加速、减速动画的需求。以塔防为例子,布塔的时候希望能够将游戏减速,布好塔后,则希望能将游戏加速;当某个怪被冰冻后,移动速度减缓,而其他怪的移动速度不变。cocos2d-x引擎为我们提供了很强大的接口,下面就将我实验的过程复述一遍,也方便他人。1)实现全局的加速、减速。通过设置Scheduler的tim
阅读全文
摘要:转自:http://bbs.9ria.com/thread-220210-1-4.html首先得理解一些东西。1.理解颜色混合。精灵有个成员函数:setBlendFunc(),这个函数以一个ccBlendFunc类型的变量为参数。这个ccBlendFunc是个结构体。这个结构体中有两个变量:src 和 dest. 举个例子:代码:ccBlendFunc spriteBlend;spriteBlend.src = GL_ONE;spriteBlend.dst = GL_ZERO;pSprite->setBlendFunc(spriteBlend);假设精灵pSprite是源颜色.则setB
阅读全文
摘要:转自:http://blog.csdn.net/yanghuiliu/article/details/6912612正在做项目中有很多游戏数据要保存,常见的玩家数据这些比较简单的可以用CCUserDefault。它是cocos2d-x用来存取基本数据类型用的。保存为XML文件格式。主要方法:(和java的map很像,键值对,应该很容易懂的)void setBoolForKey(const char* pKey, bool value);void setIntegerForKey(const char* pKey, int value);void setFloatForKey(...
阅读全文
摘要:转自:http://blog.csdn.net/qq51931373/article/details/91191611.通常情况下用PVR格式的文件来进行图片显示的时候,在运行速度和内存消耗方面都要比PNG格式要快和小。一般情况下PVR消耗的内存比PNG消耗的内存小25%左右。PVR格式可以用ZWoptex导出。PVR是apple芯片能直接读取和显示的文件.2.图片抗锯齿处理。图片放大时的处理:图片在放大的时候会出现锯齿。纹理类提供了setAntiAliasTexParameters()函数来处理抗锯齿。当图片放大的时候会使用相邻的四个像素进行混合运算。从而消除锯齿。但是会让图片产生模糊的感觉
阅读全文
摘要:转自:http://www.cnblogs.com/jaoye/archive/2013/02/19/2916501.htmlccColor4B c = {0, 0, 0, 0};CCPoint pt = ccp(240,160);//要获取的点unsigned int x = pt.x, y = pt.y; CCImage * myimg = new CCImage();//加载 图片myimg->initWithImageFileThreadSafe("HelloWorld1.png");unsigned char *data_=myimg->getData
阅读全文
摘要:转自:http://codingnow.cn/cocos2d-x/832.html学习cocos2d-x中的菜单主要需要了解:菜单(CCMenu)和菜单项(CCMenuItem)以及CCMenuItem的具体子类。a. 下面来学习一下相关的类。1. CCMenu菜单,是CCLayer的子类,是一个层(容器),可以往里面添加菜单项。下面是它的类结构图:CCMenu默认接受触屏事件的优先级是-128(优先级很高,因为值越小,响应触屏事件的优先级越高),可以通过继承它实现自定义的效果,创建CCMenu对象的函数:static CCMenu* menuWithItems(CCMenuItem* ite
阅读全文
摘要:转自:http://codingnow.cn/cocos2d-x/1024.html在游戏和应用中经常要实现左右滑动展示游戏帮助、以列表显示内容的UI效果,就像android中的Gallery和ListView。本文通过CCScrollView和CCTableView分别来实现这两个效果,基于cocos2d-x 2.0.4版本。首先来简单了解一下这两个东东,CCScrollView本身是一个CCLayer,而CCTableView是CCScrollView的子类,这是引擎已经帮我们封装好了的,CCTableView可以设置成横向和纵向,用它可以实现类似于Gallery和ListView的效果。
阅读全文
摘要:转自:http://blog.csdn.net/bill_man/article/details/72509111.CCRenderTexture使用CCRenderTexture的过程总结起来一句话,就是首先用begin方法来开始整个控制,采用节点中(比如CCSprite)的visit方法加入到渲染,最后调用end方法来结束整个控制并渲染。来看一个使用的例子//定义一个CCRenderTexture,参数为宽高m_pTarget = CCRenderTexture::renderTextureWithWidthAndHeight(s.width, s.height);//然后他也必须像节点一
阅读全文
摘要:转自:http://www.xinze.me/cocos2d-x-ccnotificationcenter/在前端开发中,JS和as3中都有很好的监听机制, 我们使用Event的addEventListener、dispatchEvent即可实现松耦合。 在尝试使用cocos2d-x的时候,我寻找这种事件机制。由于自己是不愿去再去写一些一定存在的代码, 就想去找网上找了, 第一想法,就是立马去看PureMvc – c++,这儿的观察者模式可以轻易实现松耦合,但是看了看,感觉在c++中使用有些麻烦,就放弃了。 在google中搜索,找到如何一篇文章:Generic Observer Patter
阅读全文
摘要:转自:http://blog.csdn.net/bill_man/article/details/8498424 可以根据一个模板切割图片的节点--CCClippingNode。这个类提供了一种不规则切割图片的方式,在这种方式以前,我们可以使用纹理类自带的setTextureRect函数来切割矩形区域,而新特性中提供的CCClippingNode最大的不同之处就是裁减将不仅仅局限于矩形,可以根据任何形状进行裁减,而你要做的只是给一个“裁减模板”,首先来看这个类的常用函数(需要说明的是,这里介绍的函数只是这个类独有的,这个类继承自CCNode节点类,因此节点类有的函数也就不做介绍了):getS.
阅读全文
摘要:转自:http://codingnow.cn/cocos2d-x/810.html这一篇来学习怎么使用cocos2d-x引擎播放帧动画,就是把一帧一帧的图片像电影那样显示出来。1. 首先来了解一下相关的类CCAnimation:是精灵用来播放动画的参数,内部封装了一个帧序列(CCMutableArray)和每帧播放间隔时间(float m_fDelay),初始化该对象时记得指定delay时间,否则默认是0。CCAnimationCache:从名字很容易看出,它是用来缓存CCAnimation的,内部封装了一个字典(CCMutableDictionary),是一个单例。使用实例:CCMutabl
阅读全文
摘要:转自:http://codingnow.cn/cocos2d-x/783.html游戏跟视频最大的区别就是互动,玩家可以操控游戏中的角色,现在的移动设备几乎人手一台,基本上全部都是基于触屏操作的,今天就来学习一下cocos2d-x是怎么实现对触屏操作的处理的。1.首先来了解一下相关的几个类、处理触屏事件时操作和执行的流程CCTouch:它封装了触摸点,可以通过locationInView函数返回一个CCPoint。CCTouchDelegate:它是触摸事件委托,就是系统捕捉到触摸事件后交由它或者它的子类处理,所以我们在处理触屏事件时,必须得继承它。它封装了下面这些处理触屏事件的函数:virt
阅读全文
摘要:转自:http://codingnow.cn/cocos2d-x/795.html精灵是游戏中十分重要的组成部分,随处可见,如:游戏背景、NPC、人物、道具等。在cocos2d-x引擎中,只要是用图片展示的,基本上需要使用精灵类。1. 首先来了解一下跟精灵相关的几个类:(1) CCTexture2D可以把它看成一个纹理,它是cocos2d-x渲染图形的重要参数,用来贴图,因为cocos2d-x使用opengl es绘制2d图形的,它的尺寸是2的n次方。一般通过以下方式获得:CCTexture2D* cache = CCTextureCache::sharedTextureCache()->
阅读全文
摘要:转自:http://codingnow.cn/cocos2d-x/775.html从结构图可以看出,动作类的基类是CCAction,通过继承它可以实现很多种动作。 CCFiniteTimeAction:有限次动作执行类,就是按时间顺序执行一系列动作,执行完后动作结束; CCSpeed:调整实体(节点)的执行速度; CCFollow:可以使节点跟随指定的另一个节点移动。下面我们主要来学习CCFiniteTimeAction,这个类在平常的开发中很常见。CCFiniteTimeAction又分为CCActionInstanse(瞬时动作的基类)和CCActionInterval(延时动作的基...
阅读全文
摘要:转自:http://cocos2d.cocoachina.com/bbs/forum.php?mod=viewthread&tid=822&extra=&page=1ocos2d-x好像没有实现原生的加亮和变灰的效果,所以自己研究了一番,实现起来也不难,要同时用到CCImage、CCTexture、CCSprite。主要的思路是通过CCImage先载入图片,然后getData()获取图片数据,接着逐一获取各像素的RGB值(代码基于jpg,若是png则需要获取RGBA值),通过相应方法修改各像素点的值。之后将该CCImange加载到CCTexture2D中,再由CCSpr
阅读全文
摘要:转自:http://blog.csdn.net/redline2005/article/details/6313703 版 本类 型使用的library被忽略的libraryR Release单线程libc.liblibcmt.lib, msvcrt.lib, libcd.lib, libcmtd.lib, msvcrtd.lib多线程libcmt.liblibc.lib, msvcrt.lib, libcd.lib, libcmtd.lib, msvcrtd.lib使用DLL的多线程msvcrt.liblibc.lib, libcmt.lib, libcd.lib, libcmtd.lib,
阅读全文
摘要:转自:http://www.cnblogs.com/linux-ios/archive/2013/04/09/3009292.html备用bool HelloWorld::init(){ ////////////////////////////// // 1. super init first if ( !CCLayer::init() ) { return false; } CCSize size =CCDirector::sharedDirector()->getWinSize();//获取屏幕大小 CCSprite * ...
阅读全文
摘要:转自:http://blog.csdn.net/honghaier/article/details/8222401序列帧动画主要有几个类: CCSpriteFrame:精灵帧信息,序列帧动画是依靠多个精灵帧信息来显示相应的纹理图像,一个精灵帧信息包包含了所使用的纹理,对应纹理块的位置以及纹理块是否经过旋转和偏移,这些信息可以取得对应纹理中正确的纹理块区域做为精灵帧显示的图像。 CCAnimationFrame:序列帧动画单帧信息,它存储了对应的精灵帧信息。 CCAnimation:序列帧动画信息,它存储了所有的单帧信息,可以对单帧信息进行管理。 CCAnimate:序列帧动画处理类,它是真正完
阅读全文
摘要:转自:http://blog.csdn.net/honghaier/article/details/8160519CCObject.h:#ifndef __CCOBJECT_H__#define __CCOBJECT_H__#include "platform/CCPlatformMacros.h"//Cocos2d命名空间NS_CC_BEGIN//声明以下几种类,在后面会定义相应类的成员变量的指针。以下几个类均是CCObject类的派生类。class CCZone; //CCObject指针暂存类class CCObject;//基类class CCNode; //结点类
阅读全文
摘要:转自:http://game.dapps.net/gamedev/game-engine/7281.html在Cocos2d-x中,拖尾效果有一个专门的类CCMotionStreak来实现。下面我们打开CCMotionStreak.h来看一下:#ifndef __CCMOTION_STREAK_H__#define __CCMOTION_STREAK_H__#include "CCProtocols.h"#include "textures/CCTexture2D.h"#include "ccTypes.h"#include &quo
阅读全文
|