随笔分类 -  Cocos2d-x

摘要:菜单类在游戏中有着非常重要的地位,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】 阅读(731) 评论(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】 阅读(864) 评论(0) 推荐(0)
摘要:所有节点都拥有一个摄像机类CCCamera。只有通过摄像机类,节点才会被渲染出来。当节点发生缩放旋转和位置变化的时候,都需要覆盖CCCamera 类,让这个节点通过CCCamera 类重新渲染。 注意:CCNode 类里有些方法可以实现缩放、旋转和位置变化,当使用摄像机类实现这些的时候,那些方法就不能同时使用了。使用摄像机类也不可以同时使用世界坐标了。 CCCamera 类的继承关系如下: CCCamera -->CCObject-->CCCopying。 Cocos2D-x 中的CCCamera 类使用OpenGL 的gluLookAt 函数来设置位置。gluLookAt 函数有 阅读全文
posted @ 2013-08-22 13:34 【Winco】 阅读(4436) 评论(0) 推荐(0)
摘要:1、精灵类CCSprite: CCSprite类 是一张二维的图片对象,它可以用一张图片或者一张图片的一块矩形部分来定义。CCSprite 和它的子类可以作为精灵批处理类的子项。CCSprite类的继承关系如下: CCTextFieldTTF-->CCLabelTTF-->CCSprite-->CCNode、CCTextureProtocol、CCRGBAProtocol。 主要的成员函数如下: initWithTexture:通过贴图定义精灵。 initWithSpriteFrame:通过CCSpriteFrame 定义精灵。 initWithSpriteFrameName 阅读全文
posted @ 2013-08-21 18:23 【Winco】 阅读(2498) 评论(0) 推荐(0)
摘要:布景层类CCLayer 是CCNode 类的子类, 并且在此基础上实现触屏事件代理(TouchEventsDelegate)协议,可以实现CCNode 类的功能,并且可以处理输入,包括触屏和加速度传感器。每个游戏场景中可以有很多层,每一层负责各自的任务,如专门负责显示地图的背景、专门负责显示敌人、专门负责机关和专门负责主角等;每一层上可以放置不同的元素,包括文本、精灵图片和菜单等。通过层与层之间的组合关系,就可以构成游戏显示的界面UI,游戏中等。当然为了看到每一层的东西,可把一些层设置为透明或半透明的,这样就可以看到不同布景层叠加到一起的效果了。CCLayer类的继承关系如下:(CCLay.. 阅读全文
posted @ 2013-08-21 14:52 【Winco】 阅读(974) 评论(0) 推荐(0)
摘要:CCScene 类是CCNode 的子类。和CCNode 相比,它只是添加了一个特性,那就是拥有自己的锚点,位置在屏幕的正中央。除此之外,它目前还没有额外的功能,只是一个抽象的概念。CCScene类的继承关系如下: CCTransitionScene-->CCScene-->CCNode-->CCObject-->CCCopying 可以看到,CCScene 类有CCTransitionScene(切换场景类),并且CCTransitionScene 类有很多子类,这些类都用于切换场景的特效。注意:游戏通常都会出现这种情况,当切换场景时,程序会由于旧场景的内存没有释放并 阅读全文
posted @ 2013-08-21 14:03 【Winco】 阅读(767) 评论(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】 阅读(1597) 评论(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】 阅读(1277) 评论(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】 阅读(499) 评论(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】 阅读(523) 评论(0) 推荐(0)
摘要:最近工作需要使用cocos2d-x开发一款手机游戏,所以要从头开始对cocos2d-x进行一个详细的全面的了解。以前也关注过cocos2d-x引擎,因为没有在平时工作中使用不到,所以也就没有进行详细了解,只是略懂一些比较浅浅的东西。 最近在大量的查阅cocos2d-x相关的博客,让我对cocosd-x有了一个基本的认识,当然咱也不能只做一个只知道索取不进行贡献的人不是,所以在这里把我所学习过程整理成笔记记录下来,一方面记录我学习的点点滴滴,另一方面也是通过自己学习过程来帮助想要学习cocosd-x人。 由于本人才疏学浅,语言描述方面和后面笔记记录有错误的地方,也希望大家直接评论指正,在此谢过. 阅读全文
posted @ 2013-08-19 10:39 【Winco】 阅读(436) 评论(0) 推荐(0)
摘要:在线更新是用脚本编写游戏逻辑的特有功能,由于脚本语言是边解释边编译的特性,使得游戏在运行的时候可以通过下载最新的脚本来执行游戏逻辑。在不修改Native接口的情况下,在线更新每次更新只需要下载一个(500k-1M)的zip脚本压缩包即可。相比较而言,传统的apk打包或者ios的ipa打包且不说打包花费的时间,用户每次更新必须重新下载整个程序包(一般在30M以上,甚至到几百M),更要命的是ios上传发布必须通过苹果审核,一个审核周期就是至少一周,还有几率被苹果打回,其实有的时候只是修改了一个比较重要的bug而已。cocos2d-x的CCFileUtil有一个比较重要的功能,就是设定资源的搜索路径 阅读全文
posted @ 2013-08-17 15:27 【Winco】 阅读(259) 评论(0) 推荐(0)
摘要:cocos2d-x是一款众所周知的跨平台的游戏开发引擎。由于其跨平台的特性,多分辨率支持也自然就有其需求。因此,在某一次更新中(抱歉,笔者已经忘了是哪次更新了),cocos2d-x添加了一个新的方法,可以非常简便地让cocos2d根据屏幕尺寸的大小做自适配。方法名:1 virtual void setDesignResolutionSize(float width, float height, ResolutionPolicy resolutionPolicy);该方法所传的参数中,前两个参数width、height,指的是开发者在设计界面时默认设计的尺寸。例如:开发者在设计界面时以ipho. 阅读全文
posted @ 2013-05-31 19:03 【Winco】 阅读(235) 评论(0) 推荐(0)
摘要:CCScene场景切换、场景的切换效果1、运行场景:1 CCScene *pScene = HelloWorld::scene();2 pDirector->runWithScene(pScene);2、替换场景:1 CCScene *pScene=SceneTestScene::scene();2 CCDirector::sharedDirector()->replaceScene(pScene);3、过渡类: 1 //用CCTransition绕y轴翻转x轴过渡到FilipXpScene 2 CCDirector::sharedDirector()->replaceSce 阅读全文
posted @ 2013-04-10 19:48 【Winco】 阅读(647) 评论(0) 推荐(0)
摘要:CCMenu这是一个抽象的东西,容纳菜单项CCMenuItem的容器....上次只是简单的介绍一下CCMenuItem,通过最近的学习对CCMenuItem又有了进一步的掌握,然后重新对CCMenuItem有了一个进一步的介绍。内容如下: 1 MenuTestLayer::MenuTestLayer(void) 2 { 3 //设置字体大小 4 CCMenuItemFont::setFontSize( 30 ); 5 //根据名字设置字体 6 CCMenuItemFont::setFontName("Courier New"); 7 //设置能点击 8 setTouchEn 阅读全文
posted @ 2013-04-10 16:43 【Winco】 阅读(576) 评论(0) 推荐(0)
摘要:游戏中4者的关系如下:Scenesscene(即 CCScene类)是app 工作流上独立块。scene也叫做 screents 或者“stages”. 一个app可能拥有多个scenes, 但在任何时候只能有一个是激活状态的。举个例子,某个游戏可能拥有如下scenes: Intro, Menu菜单, Level 1, Cutscene 1, Level 2, Winning cutscene, losing cutscene, High scores screen等等. 可以把这些scenes定义成独立的应用块;这些scenes之间包含了相互连接的逻辑(当中断或者完成,intro会进入men 阅读全文
posted @ 2013-03-28 09:47 【Winco】 阅读(721) 评论(0) 推荐(0)
摘要:首先我也是刚刚接触cocos2d-x不久,也是在网上各种找相关的学习资料,浪费了大量的时间。然后看到子龙山人收集的学习资源汇总很全面,非常适合我们新手学习,我就转载一方面留给自己学习查找方便,另一方面也可以让这些东西更广泛的传播,让更多学习的人方便查找。0.http://www.supersuraccoon-cocos2d.com/zh/2012/02/11/sticky-ios-cocos2d-develop-recommended-blog-list-keep-updating/(It's amazing!Thank yousupersuraccoon!)1.csdn的cocos2 阅读全文
posted @ 2013-03-21 10:43 【Winco】 阅读(279) 评论(0) 推荐(0)
摘要:Cocos2d-x的菜单中提供了多种菜单项的生成方式,他们都继承于CCMenuItem,如下图:但是这些CCMenuItem及其子类是不能直接添加到显示列表中的,要必须把他们封装到CCMenu中,把CCMenu添加到显示列表显示。下面来看一下CCMenu的继承关系,如下图:实例代码如下: 1 CCMenuItemImage *pCloseItem = CCMenuItemImage::create( 2 "CloseNormal.png", 3 "CloseSelected.png", 4 this, 5 ... 阅读全文
posted @ 2013-03-21 10:35 【Winco】 阅读(237) 评论(0) 推荐(0)
摘要:在cocos2d-x中要绘制中文。然后我就选择和绘制英文一样的方法进行绘制,结果如下图:代码如下:1 CCSize size = CCDirector::sharedDirector()->getWinSize();2 3 CCLabelTTF* pLabel = CCLabelTTF::create("世界你好", "Arial", 24);4 5 pLabel->setPosition(ccp(size.width / 2, size.height / 2));6 7 this->addChild(pLabel, 1);这是怎么一回 阅读全文
posted @ 2013-03-18 09:43 【Winco】 阅读(502) 评论(0) 推荐(0)
摘要:需要说明的是:因为cocos2d-x是通用游戏引擎,为了保证兼容性和易用性,对动画机制作了最简单的设计(被做成了一个action)。但代价就是绘制动画的代码可能比较多,如果在实际开发中,一般都要选择自己封装。最好自己开发一个编辑器,开发编辑器最好使用Qt,因为是跨平台的。在66RPG里找了一张动画资源。实例代码如下: 1 CCSize size = CCDirector::sharedDirector()->getWinSize(); 2 3 CCTexture2D* texture = CCTextureCache::sharedTextureCache()->addIma... 阅读全文
posted @ 2013-03-15 13:09 【Winco】 阅读(434) 评论(0) 推荐(0)