08 2013 档案

摘要:Cocos2D-x基础学习笔记到这里就要结束了,其中有几块没有介绍的以后会单独介绍,比如:瓦片、物理引擎、网络等。这里就不在基础学习笔记系列中介绍了,在最后一个学习笔记中,我们来看一下Cocos2D-x中常用的宏。 1 NS_CC_BEGIN:Cocos2D-x命名空间开始,属于Cocos2D-x的类的定义以该宏开头,用以代替C++中的“namespace cocos2d{”。 2 3 NS_CC_END:Cocos2D-x命名空间结束,属于Cocos2D-x的类的定义以该宏结束,用以代替“}”。 4 5 USING_NS_CC:声明Cocos2D-x的命名空间,代替”usi... 阅读全文
posted @ 2013-08-28 17:13 【Winco】 阅读(695) 评论(0) 推荐(0) 编辑
摘要:在Cocos2D-x中通过CCRenderTexture可以实现更好的渲染效果。本节就来看一下CCRenderTexture的使用、和其它渲染的对比。 1、CCRenderTexture的使用 使用CCRenderTexture的过程总结起来就一句话,首先用begin方法开始整个控制,采用节点中的visit方法加入渲染,最后调用end方法介绍整个控制并渲染。使用的示例如下: 1 //定义一个CCRenderTexture对象,参数为宽高 2 CCRenderTexture* rend = CCRenderTexture::create( 32,64, kCCTexture2DPixel... 阅读全文
posted @ 2013-08-28 16:39 【Winco】 阅读(1975) 评论(0) 推荐(0) 编辑
摘要:手机游戏的开发中,控制内存是一个很重要的课题。由于机型之间的性能存在差异,很多时候需要处理内存方面的优化。一方面是代码中的优化,另一方面是图片渲染等方面的优化。 1、内存管理原则: Cocos2D-x采用c++语言进行开发,C++中的对象采用new/delete机制进行管理,即当创建一个对象的时候,调用new来申请一部分内存,当不需要这个对象的时候,直接调用delete就可以释放这部分内存。这样处理的好处是程序可以完全掌握内存管理的方方面面,缺点是程序员有时会忘记释放内存,就会发生内存泄露,导致不可预计的后果。 Cocos2D-x采用引用计数的方式管理内存,基本原则是当创建一个新对象... 阅读全文
posted @ 2013-08-28 15:59 【Winco】 阅读(545) 评论(0) 推荐(0) 编辑
摘要:游戏中的存档功能可以保证玩家在游戏过程中有足够的延续性,这点在单机游戏开发中尤为重要。Cocos2D-x中支持的游戏存档类CCUserDefault可以作为一个轻量化的数据库来使用。它支持存储的数据类型包括bool(布尔型)、int(整型)、float(浮点型)、double(双精度浮点型)、string(字符串型)。 CCUserDefault类的主要成员函数如下: getBoolForKey:根据传入的键值参数返回相应的布尔值,第二个参数为可选的默认值,一旦该键值的值不存在,将返回默认值。 getIntegerForKey:根据传入的键值参数返回相应的整型值,第二个参数为可选的默... 阅读全文
posted @ 2013-08-28 12:15 【Winco】 阅读(1022) 评论(0) 推荐(0) 编辑
摘要:Cocos2D-x中采用SimpleAudioEngine类来实现跨平台的声音引擎。 1、Cocos2D-x在不同平台下支持的背景音乐格式如下: android:android.media.MediaPlayer类支持的格式,包括MP3、WAV和3GP。 IOS:Cocos2D-iPhone中CocosDenshion支持的类型,推荐MP3和CAF。 Win32:MID和WAV。 2、Cocos2D-x在不同平台下支持的音效格式如下: android:对于OGG格式支持最好,同时支持WAV格式。 IOS:Cocos2D-iPhone中CocosDenshion支持的类型、推荐... 阅读全文
posted @ 2013-08-27 18:37 【Winco】 阅读(2208) 评论(0) 推荐(0) 编辑
摘要:滚动列表类CCListView是Cocos2D-x2.0及更高版本新增加的一个类。它继承与颜色布景层类CCLayerColor,继承关系如下: CCListView、CCListViewCell->CCLayerColor。 CCListView类作为一个容器,它装载的CCListViewCell列表单元同样继承自颜色布景层类CCLayerColor。另外CCListViewDelegate用来处理滚动列表的代理事件。 1、CCListView类的主要成员函数如下: initWithMode:参数传入,CCListViewModeHorizontal列表是水平的,CCListVie... 阅读全文
posted @ 2013-08-27 16:24 【Winco】 阅读(1334) 评论(0) 推荐(0) 编辑
摘要:在游戏中,有时需要用户输入用户名、密码等,这时需要调用虚拟键盘来实现。在Cocos2D-x中,通过使用继承输入法代理类CCIMEDelegate和其字体标签类CCLabelTTF的子类输入框类CCTextFieldTTF来实现虚拟键盘输入功能。继承关系如下: CCTextFieldTTF->CCLabelTTF、CCIMEDelegate。 可以看出CCTextFieldTTF类分别继承自CCIMEDelegate类和CCLabel类,这就决定了它既是标签化的输入框,又是可输入字符的标签。 1、CCIMEDelegate类的主要成员函数如下: attachWithIME:打开键盘并... 阅读全文
posted @ 2013-08-27 15:27 【Winco】 阅读(2988) 评论(0) 推荐(0) 编辑
摘要:使用IOS系统的设备中只有Home键,按下Home键,程序进入后台。而使用Android系统的部分设备会有Menu键和返回键,因此有时需要检测设备的键盘输入,使用键盘事件代理CCKeypadDelegate处理相应的事件。CCKeypadDelegate类的继承关系如下: CClayer->CCkeypadDelegate。 主要的成员函数如下: keyBackClicked:返回按钮按下时调用。 keyMenuClicked:Menu键按下时调用。 按键事件的使用示例如下: 1 //要在CCLayer类中获得按键事件的数据,首先要在初始化函数中加入允许接收按键事件的函数。 2 ... 阅读全文
posted @ 2013-08-27 14:59 【Winco】 阅读(629) 评论(0) 推荐(0) 编辑
摘要:智能手机的游戏与应用中,也经常会用到加速度传感器事件来丰富用户的操作,比如赛车游戏中摇动手机控制前进方向、动作过关游戏中通过加速度传感器来控制角色的移动和跳跃方向等。Cocos2D-x中使用加速度传感器代理CCAccelerometerDelegate提供的方法来接收加速度传感器的数值变化,继承关系如下: CCLayer-->CCAccelerometerDelegate。 布景层类CCLayer和其子类继承自CCAccelerometerDelegate类,因此布景层类和其子类可以使用获得加速度传感器的方法。 CCAccelerometerDelegate类的主要成员函数: di... 阅读全文
posted @ 2013-08-27 14:50 【Winco】 阅读(1429) 评论(0) 推荐(0) 编辑
摘要:在智能手机中,触屏操作占有很重要的位置,尤其是多点触摸技术的兴起,使得触屏操作在游戏中更广泛的使用,使操作方式更加丰富。在Cocos2D-x中,继承自触屏代理协议CCTouchDelegate的布景层类CCLayer可以检测触屏事件并调用回调函数。CCTouchDelegate类的继承关系如下: CCLayer、CCStandardTouchDelegate、CCTargetedTouchDelegate-->CCTouchDelegate。 CCTouchDelegate的子类中,CCStandardTouchDelegate协议是标准的获得多点触摸点的范例,CCTargetedTo. 阅读全文
posted @ 2013-08-27 14:33 【Winco】 阅读(788) 评论(0) 推荐(0) 编辑
摘要:本节学习和动画类CCAnimate相关的类,比如:CCAnimationCache类、CCAnimationFrame类、CCAnimation类等。下面我们就来一一学习: 1、动画缓存类CCAnimationCache:是一个单例,用于缓存所有的动画和动画帧,使用示例如下:1 //获得动画缓存类CCAnimationCache2 CCAnimationCache* animCache = CCAnimationCache::shareAnimationCache();3 //通过addAnimation函数加入动画,并给动画命名。4 animCache->addAnimation( a 阅读全文
posted @ 2013-08-27 13:30 【Winco】 阅读(298) 评论(0) 推荐(0) 编辑
摘要:网格动作类似于特效,可以实现翻转、抖动、震荡、水波纹等效果。Cocos2D-x中,网格类的基类CCGridBase有两个子类,即CCGrid3D和CCTiledGrid3D。这两个类的共同点是,网格的每个子块都可以分离出来,CCGridBase的继承关系如下: CCGrid3D、CCTiledGrid3D-->CCGridBase-->CCObject。 网格没有什么直接应用的场合,只要明白CCGrid3D和CCTiledGrid3D,并且网格动作是基于网格的即可。运行网格动作的节点好像被分成了大小相同的很多矩形,通过这些矩形的动作形成整体动作,这些矩形就好像形成了一个矩阵。16x 阅读全文
posted @ 2013-08-27 11:36 【Winco】 阅读(1609) 评论(0) 推荐(0) 编辑
摘要:动作管理类CCActionManager是一个管理所有动作的单例,工作原理是:当CCNode执行runAction时,该函数会把动作通过动作管理类的addAction函数将对象传递给CCActionManager的单例,该实例再把这个动作添加到自己的动作序列中。 动作管理类单例通过定时刷新自己的update方法,在这个方法中去调用行为序列中每个动作的step(暂停的行为不会update),这些step方法在根据自身的完成进度去update或是结束行为。 实际上是由动作管理单例驱动的每个动作去更新自己的逻辑,而runAction方法只是将行为对象添加进CCActionManager的待执... 阅读全文
posted @ 2013-08-27 11:01 【Winco】 阅读(1184) 评论(0) 推荐(0) 编辑
摘要:在游戏中,游戏对象有时不是执行一个动作,有时是多个动作的动作序列,有时是同时执行几个动作序列。这时候就需要使用组合动作的方式将多个动作或按序列组织,或合成在一起。下面我们就来看一下几个比较常用的动作组合类: 1、CCSequence:动作序列,可以使用动作的CCArray数组,也可以把所有的动作作为参数传入create函数中,最后结尾参数使用NULL(空值)即可,还可以把两个有限时间动作按顺序传入create函数中。使用代码如下:1 CCFiniteTimeAction* seq = CCSequence::create(action1, action2, action3, action... 阅读全文
posted @ 2013-08-26 18:25 【Winco】 阅读(448) 评论(0) 推荐(0) 编辑
摘要:在实现运动中,常常需要实现一些加速度或者减速度的效果。Cocos2D-x引擎为我们提供了相应的实现接口,这样就不用再用原来的公式计算方法实现加减速度的效果。 Ease系列的方法改变了运动的速度,但是并没有改变总体时间。如果整个动作持续5s,那么整个时间仍然会持续5s。这些动作可以分成三类,如下: 1、In actions:action(开始的时候加速) 2、Out actions:action(结束的时候加速) 3、InOut actions:action(开始和结束的时候加速) CCActionEase有很多子类,根据不同的缓冲公式来模拟加减速过程,如下: 1、指数缓冲:分别... 阅读全文
posted @ 2013-08-26 15:20 【Winco】 阅读(1308) 评论(0) 推荐(0) 编辑
摘要:CCAction的子类CCFiniteTimeAction分为瞬时动作(CCActionInstant)和延时动作(CCActionInterval),其中瞬时动作的子类如下: CCCallFunc:执行回调函数。 CCFilpX:x轴镜像翻转。 CCFilpY:y轴镜像翻转。 CCHide:隐藏。 CCPlace:设置位置。 CCReuseGrid:重用网络。 CCShow:显示。 CCStopGrid:停止网格。 CCToggleVisibility:可见切换。 瞬时动作,顾名思义,就是直接调用结果的动作,这中间不产生任何动画效果。 延时动作(CCAction... 阅读全文
posted @ 2013-08-26 14:45 【Winco】 阅读(749) 评论(0) 推荐(0) 编辑
摘要:Cocos2D-x的动作类CCAction并不是一个在屏幕中显示的对象,动作必须要依托于CCNode类及它的子类的实例才能发挥作用。Cocos2D-x的动作包括位置移动、跳跃,甚至是对象颜色的渐变等。CCAction类的继承关系如下: CCFiniteTimeAction、CCFollow、CCSpeed-->CCAction-->CCObject。 CCAction类继承于对象类CCObject,有三个子类:有限时间动作(CCFiniteTimeAction类)、跟随(CCFollow类)、移动速度(CCSpeed)。其中有限时间动作分为瞬时动作(CCActionInstant) 阅读全文
posted @ 2013-08-23 15:46 【Winco】 阅读(324) 评论(0) 推荐(0) 编辑
摘要:在游戏中,时常需要隔一段时间更新一些数据或者是人物位置,Cocosd-x提供了一个很好的功能给我们使用,那就是schedule,它是什么东西?我们可以简单地认为它是定时器(时间调度),是单线程的定时器,所有CCNode 类的子类都有这样的函数。使用示例如下: 1 //schedule_selector 选择器将调用函数名称传进来。第二个参数是时间间隔 2 schedule(schedule_selector(调用函数), 0.5f); 3 4 //定义上面函数以后就会隔一段时间调用一次该函数,直到unschedule 被调用。这句被调用,之前schedule 的时间调度将结束。 5 un... 阅读全文
posted @ 2013-08-23 14:17 【Winco】 阅读(2261) 评论(0) 推荐(0) 编辑
摘要:在节点类CCNode 中, 可以重写draw 函数并在其中绘制图形。下面就来介绍一下几个常用的图形绘制。 1、绘制直线: 1 //参数分别为直线的起点和终点。默认绘制的直线是白色的、不透明的、线宽是1 并且是抗锯齿的。 2 ccDrawLine( ccp(0, 0), ccp(s.width, s.height) ); 3 4 //设置线宽 5 glLineWidth( 5.0f ); 6 //设置颜色 7 ccDrawColor4B(255,0,0,255); 8 ccDrawLine( ccp(0, s.height), ccp(s.width, 0) ); 9 10 //注意:O... 阅读全文
posted @ 2013-08-23 13:52 【Winco】 阅读(795) 评论(0) 推荐(0) 编辑
摘要:在游戏的实现过程中,有时会需要在某个游戏对象上的运动轨迹上实现渐隐效果。这种感觉就好像是类似飞机拉线的拖尾巴,在视觉上感觉很好,比如子弹的运动轨迹等,如果不借助引擎的帮助,这种效果往往需要通过大量的图片来实现。而Cocos2D-x 提供了一种内置的拖动渐隐效果类CCMotionStreak 来帮助我们实现这个效果。它是CCNode 类的子类,继承关系如下: CCMotionStreak-->CCNode、CCTextureProtocol、CCRGBAProtocol。 主要成员函数如下: initWithFade:第一个参数是间隐的时间,第二个参数是间隐片断的大小,第三个参数是贴图.. 阅读全文
posted @ 2013-08-23 13:28 【Winco】 阅读(881) 评论(0) 推荐(0) 编辑
摘要:1、CCArray: 数组容器,每个对象的类型可以不相同。主要的成员函数如下: init:初始化。 initWithObject:初始化,参数为对象。 initWithObjects:初始化,参数为多个对象。 initWithCapacity:初始化,参数为个数。 initWithArray:初始化,参数为数组。 count:目前对象个数。 capacity:数组对象。 indexOfObject:获得相应对象的索引。 objectAtIndex:根据索引获得对象。 lastObject:返回最后一个对象。 randomObject:随机返回一个对象。 addObj... 阅读全文
posted @ 2013-08-23 11:57 【Winco】 阅读(802) 评论(0) 推荐(0) 编辑
摘要:在游戏中,文字占有很重要的位置,游戏的介绍、游戏中的提示和对话等都需要用到文字。Cocos2d-x在文字渲染方面提供了非常灵活的机制,既可以直接使用系统字,也可以自渲染字体,文本渲染类的继承关系如下: CCLabelAtlas、CCLabelBMFont、CCLabelTTF-->CCLabelProtocol。 CCTextFieldTTF-->CCLabelTTF。 1、CCLabelAtlas类 CCLabelAtlas类是使用图片作为文字的一种方式,该类可以通过图片直接定义。使用示例如下: 1 //创建CCLabelAtlas实例,参数:要显示的文字字符串、图片路径、字符. 阅读全文
posted @ 2013-08-22 16:53 【Winco】 阅读(1179) 评论(0) 推荐(0) 编辑
摘要:菜单类在游戏中有着非常重要的地位,CCMenu 是一个菜单项的容器,用来装载各种菜单项。菜单项可以是图片、系统字,或者自定义的字体。菜单的使用示例如下: 1 //创建菜单项 2 CCMenuItemImage* item1 = CCMenuItemImage::create(s_PlayNormal, s_ 3 PlaySelect, this, menu_selector(MenuLayer2::menuCallback)); 4 CCMenuItemImage* item2 = CCMenuItemImage::create(s_HighNormal, s_ 5 HighSelect,.. 阅读全文
posted @ 2013-08-22 15:18 【Winco】 阅读(726) 评论(0) 推荐(0) 编辑
摘要:在应用的开发中,无论是Android 操作系统还是iOS 操作系统,其开发框架都提供了控件,包括按键、拖动滑块等,这样提高了开发效率。对于游戏的开发,UI 的开发同样需要控件来提高开发效率。下面我们就来看几个比较常用的UI控件的使用。 1、拖动滑块的控件类CCControlSlider 1 // 定义CCControlSlider实例 2 //参数为图片路径,分别是滑块滑道图片路径、滑块滑动后覆盖滑道图片路径和滑块图片路径 3 CCCo ntrolSlider *slider = CCControlSlider::create("extensions/ 4 sliderTrack.p 阅读全文
posted @ 2013-08-22 14:01 【Winco】 阅读(855) 评论(0) 推荐(0) 编辑
摘要:所有节点都拥有一个摄像机类CCCamera。只有通过摄像机类,节点才会被渲染出来。当节点发生缩放旋转和位置变化的时候,都需要覆盖CCCamera 类,让这个节点通过CCCamera 类重新渲染。 注意:CCNode 类里有些方法可以实现缩放、旋转和位置变化,当使用摄像机类实现这些的时候,那些方法就不能同时使用了。使用摄像机类也不可以同时使用世界坐标了。 CCCamera 类的继承关系如下: CCCamera -->CCObject-->CCCopying。 Cocos2D-x 中的CCCamera 类使用OpenGL 的gluLookAt 函数来设置位置。gluLookAt 函数有 阅读全文
posted @ 2013-08-22 13:34 【Winco】 阅读(4404) 评论(0) 推荐(0) 编辑
摘要:1、精灵类CCSprite: CCSprite类 是一张二维的图片对象,它可以用一张图片或者一张图片的一块矩形部分来定义。CCSprite 和它的子类可以作为精灵批处理类的子项。CCSprite类的继承关系如下: CCTextFieldTTF-->CCLabelTTF-->CCSprite-->CCNode、CCTextureProtocol、CCRGBAProtocol。 主要的成员函数如下: initWithTexture:通过贴图定义精灵。 initWithSpriteFrame:通过CCSpriteFrame 定义精灵。 initWithSpriteFrameName 阅读全文
posted @ 2013-08-21 18:23 【Winco】 阅读(2429) 评论(0) 推荐(0) 编辑
摘要:布景层类CCLayer 是CCNode 类的子类, 并且在此基础上实现触屏事件代理(TouchEventsDelegate)协议,可以实现CCNode 类的功能,并且可以处理输入,包括触屏和加速度传感器。每个游戏场景中可以有很多层,每一层负责各自的任务,如专门负责显示地图的背景、专门负责显示敌人、专门负责机关和专门负责主角等;每一层上可以放置不同的元素,包括文本、精灵图片和菜单等。通过层与层之间的组合关系,就可以构成游戏显示的界面UI,游戏中等。当然为了看到每一层的东西,可把一些层设置为透明或半透明的,这样就可以看到不同布景层叠加到一起的效果了。CCLayer类的继承关系如下:(CCLay.. 阅读全文
posted @ 2013-08-21 14:52 【Winco】 阅读(968) 评论(0) 推荐(0) 编辑
摘要:CCScene 类是CCNode 的子类。和CCNode 相比,它只是添加了一个特性,那就是拥有自己的锚点,位置在屏幕的正中央。除此之外,它目前还没有额外的功能,只是一个抽象的概念。CCScene类的继承关系如下: CCTransitionScene-->CCScene-->CCNode-->CCObject-->CCCopying 可以看到,CCScene 类有CCTransitionScene(切换场景类),并且CCTransitionScene 类有很多子类,这些类都用于切换场景的特效。注意:游戏通常都会出现这种情况,当切换场景时,程序会由于旧场景的内存没有释放并 阅读全文
posted @ 2013-08-21 14:03 【Winco】 阅读(749) 评论(0) 推荐(0) 编辑
摘要:节点类(CCNode) 是Cocos2D-x 中的主要类, 继承自CCObject,节点类的继承关系如下: CCNode-->CCObject-->CCCopying。 任何需要画在屏幕上的对象都是节点类。最常用的节点类包括场景类(CCScene)、布景层类(CCLayer)、人物精灵类(CCSprite)、菜单类(CCMenu)。CCNode 类包括的主要功能如下: 1)每个节点都可以含有子节点。 2)节点含有周期性回调的方法(Schedule、Unschedule 等)。 3)可以含有动作(CCAction)。 CCNode 可以为它自己和它的子节点添加额外的功能。无论是C.. 阅读全文
posted @ 2013-08-20 18:04 【Winco】 阅读(1561) 评论(0) 推荐(0) 编辑
摘要:今天来学习cocos2d-x中非常重要的一个类,它管理整个游戏的开始、结束、暂停等,可以说它就是我们游戏的总指挥,那么它就是我们的导演类CCDirector。下面让我们一起来学习一下导演类CCDirector。 CCDirector类是Cocos2d-x游戏引擎的核心,它用来创建并且控制着主屏幕的显示,同时控制场景的显示时间和显示方式。在整个游戏里一般只有一个导演。游戏的开始、结束、暂停都会调用CCDirector类的方法。CCDirector类具有如下功能: 1)初始化OpenGL会话。 2)设置OpenGL的一些参数和方式。 3)访问和改变创景以及访问Cocos2d-x的配置细... 阅读全文
posted @ 2013-08-20 12:23 【Winco】 阅读(1244) 评论(0) 推荐(0) 编辑
摘要:在学习cocos2d-x中的基本的类之前,先让我们来了解一下cocosd-x中的坐标系,cocos2d-x中有很多种坐标系,比如:OpenGL坐标系、世界坐标系、节点相对坐标系、仿射变换等。1、OpenGL坐标系: Cocos2d-x以OpenGL和OpenGL ES为基础,所以自然支持OpenGL坐标系。该坐标系远点为屏幕左下角,x轴向右,y轴向上。 屏幕坐标系使用的是不同的坐标系统,原点在屏幕左上角,x轴向右,y轴向下。IOS的屏幕触摸事件CCTouch传入的位置信息使用的是该坐标系。因此在Cocos2d-x中对触摸事件做出响应前,需要首先把触摸点转化到OpenGL坐标系,可以使用CC.. 阅读全文
posted @ 2013-08-19 15:53 【Winco】 阅读(493) 评论(0) 推荐(0) 编辑
摘要:前一段时间分享过一篇搭建cocosd-x环境的文章,今天到cocos2d-x官网下载最新版本2.1.4版本,按照原来的文章进行搭建成功后,发现怎么也不能使用VC模板进行创建项目,后来经过查询大量的博客后,发现原来在cocos2d-x 在2.1.2版本后使用的是python脚本进行创建项目,而不是在用VC模板方式了。下面就分享一下cocos2d-x 2.1.4 在win7下环境的搭建以及项目的创建。 1、下载cocos2d-x-2.1.4从Cocos2d-x官网下载最新版本2.1.4,发布日期为2013-6-18,官方网址为:http://cocos2d-x.org/如上图右侧所示,点击2... 阅读全文
posted @ 2013-08-19 13:35 【Winco】 阅读(517) 评论(0) 推荐(0) 编辑
摘要:最近工作需要使用cocos2d-x开发一款手机游戏,所以要从头开始对cocos2d-x进行一个详细的全面的了解。以前也关注过cocos2d-x引擎,因为没有在平时工作中使用不到,所以也就没有进行详细了解,只是略懂一些比较浅浅的东西。 最近在大量的查阅cocos2d-x相关的博客,让我对cocosd-x有了一个基本的认识,当然咱也不能只做一个只知道索取不进行贡献的人不是,所以在这里把我所学习过程整理成笔记记录下来,一方面记录我学习的点点滴滴,另一方面也是通过自己学习过程来帮助想要学习cocosd-x人。 由于本人才疏学浅,语言描述方面和后面笔记记录有错误的地方,也希望大家直接评论指正,在此谢过. 阅读全文
posted @ 2013-08-19 10:39 【Winco】 阅读(424) 评论(0) 推荐(0) 编辑
摘要:什么是KMP算法:KMP是三位大牛:D.E.Knuth、J.H.Morris和V.R.Pratt同时发现的。其中第一位就是《计算机程序设计艺术》的作者!!KMP算法要解决的问题就是在字符串(也叫主串)中的模式(pattern)定位问题。说简单点就是我们平时常说的关键字搜索。模式串就是关键字(接下来称它为P),如果它在一个主串(接下来称为T)中出现,就返回它的具体位置,否则返回-1(常用手段)。首先,对于这个问题有一个很单纯的想法:从左到右一个个匹配,如果这个过程中有某个字符不匹配,就跳回去,将模式串向右移动一位。这有什么难的?我们可以这样初始化:之后我们只需要比较i指针指向的字符和j指针指向的 阅读全文
posted @ 2013-08-17 15:36 【Winco】 阅读(334) 评论(0) 推荐(0) 编辑
摘要:在线更新是用脚本编写游戏逻辑的特有功能,由于脚本语言是边解释边编译的特性,使得游戏在运行的时候可以通过下载最新的脚本来执行游戏逻辑。在不修改Native接口的情况下,在线更新每次更新只需要下载一个(500k-1M)的zip脚本压缩包即可。相比较而言,传统的apk打包或者ios的ipa打包且不说打包花费的时间,用户每次更新必须重新下载整个程序包(一般在30M以上,甚至到几百M),更要命的是ios上传发布必须通过苹果审核,一个审核周期就是至少一周,还有几率被苹果打回,其实有的时候只是修改了一个比较重要的bug而已。cocos2d-x的CCFileUtil有一个比较重要的功能,就是设定资源的搜索路径 阅读全文
posted @ 2013-08-17 15:27 【Winco】 阅读(251) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示