1 / 20

Cocos2d 培训

Cocos2d 培训. 移动互联网部 姬鑫宇. 培训内容. Cocos2d 主要功能及其相应的特点 Cocos2d 的常用功能与常用控件 锚点的概念 游戏例子说明. Cocos2d 功能. 场景管理( Workflow ):非常容易管理不同场景( Scene )。 场景切换( Transitions ):可以方便地从一个场景切换到另外一个不同风格的场景,并支持各种场景间的切换特效。 精灵( Sprites )和精灵表单( Sprite Sheets ):支持快速而方便的精灵以及高效的精灵表单。

zonta
Download Presentation

Cocos2d 培训

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Cocos2d培训 移动互联网部姬鑫宇

  2. 培训内容 • Cocos2d主要功能及其相应的特点 • Cocos2d的常用功能与常用控件 • 锚点的概念 • 游戏例子说明

  3. Cocos2d功能 • 场景管理(Workflow):非常容易管理不同场景(Scene)。 • 场景切换(Transitions):可以方便地从一个场景切换到另外一个不同风格的场景,并支持各种场景间的切换特效。 • 精灵(Sprites)和精灵表单(Sprite Sheets):支持快速而方便的精灵以及高效的精灵表单。 • 特效(Effects):特效包括波浪(Waves)、旋转(Twirl)、透镜(Lens)、涟漪(Ripple)和液体(Liquid)等。 • 动作(Actions):告诉精灵可以做什么动作。动作分为基本动作、组合动作、缓冲动作和其他动作。基本的动作有移动(Move)、旋转(Rotate)、缩放(Scale)和跳跃(Jump)等;组合动作有顺序动作(Sequence)、并发动作(Spawn)、重复动作(Repeat)、反转动作(Reverse);缓冲动作有Exp、Sin、Cubic等;其他动作有CallFunc、OrbitCamera等。 • 菜单和菜单按钮(Menus &MenuItems):可以轻松地创建内部菜单和菜单按钮。 • 物理引擎(Physics Engine):Cocos2D内置支持Box2D和Chipmunk两个物理引擎。 • 粒子系统(Particle System):Cocos2D中包含一个强大的粒子系统,可以给游戏添加各种很炫的效果,如烟、火、雨、雪等。

  4. Cocos2d功能 • 文本渲染(Text Rendering):支持可变和固定宽度的字体。在Cocos2D中处理文字非常容易,这一点对于显示游戏中的菜单和得分,以及进行辅助性的游戏测试等都非常有用。Cocos2D中内置了对TrueType字体的支持,同时还支持快速位图字体渲染系统。这样,开发者仅需编写数行代码即可在屏幕上显示文字。 • 纹理图集(Texture Atlas):支持纹理图集,从而大大节省了应用中的内存占用。 • 瓷砖地图(Tiled Maps):支持正交地图、斜视角地图和六边形地图。 • 视差滚动(Parallax Scrolling):支持使用视差滚动来营造立体的背景氛围。 • 音效:支持背景音乐和游戏中的音效。 • Streak Motion:支持Streak Motion(一种类似疾驰的飞机尾部喷出的气体的效果)。 • 渲染到纹理(Render Texture):支持渲染到纹理。 • Point Based API:支持Retina显示,可以使用同样的坐标值来处理普清和高清模式下的游戏元素布局。

  5. Cocos2d功能 • 输入设备:支持触摸/加速计(iOS),键盘/鼠标(Mac)。 • 显示模式:支持纵向和横向模式(iOS),自动全屏(Mac)。 • 暂停/恢复:内置支持游戏的暂停/恢复。 • 快速纹理:支持8位、16位和32位PVRTC压缩纹理。 • 编程语言:Cocos2D-iPhone使用Objective-C编写,同时可混合使用C或C++语言。 • 图形引擎:Cocos2D 1.x版本支持OpenGL ES 1.1(iOS)/OpenGL 1.5(Mac),而最新的Cocos2D v2.0则支持OpenGL ES 2.0。

  6. Cocos2d基本框架类图

  7. CCDirector职责与常用函数 • CCDirector,主要职责是管理场景和切换场景,游戏暂停等.另外他还负责初始化openes相关的一东西.是一个单例类 • 常用函数 • runWithScene运行场景 • replaceScene替换场景 • getRunningScene获得当前场景 • getAnimationInterval获取帧间距 • setAnimationInterval设置帧间距 • isDisplayFPS是否显示帧率 • setDisplayFPS设置是否显示帧率,可以再调试阶段使用 • getWinSize获取窗口大小 • getWinSizeInPixels获取窗口像素大小 • drawScene绘制场景所有元素

  8. CCScene职责与常用函数 • CCScene,场景类,游戏场景一般是指在某个时刻能独立运行的部分,包括可见的怪物,地形和不可见的逻辑脚本等.例如一个游戏的一个特定关卡,游戏菜单,过场动画等都是一个独立的场景.cocos2d中的场景又由不同的层(CCLayer)组成. CCScene是CCNode的子类, 主要作用是一个容器

  9. CCNode职责与常用函数 • 节点类,是游戏中最重要,最基础的对象,在cocos2dx中,任何可见的或不可以的游戏逻辑对象都是一个节点,节点有以下特点: • a)        是一个容器,可以包含任意多个其它节点. • b)        可以执行一个行为(CCAction) • c)        可以执行一定时的任务回调 • d)        拥有坐标变换(transform)信息,如postion,scale,rotation等 • e)        由于一个节点可以添加任意个子节点,所有的节点组成一个树状结构,因此父节点的坐标变换会影响子节点在世界坐标系中的坐标,一个节点只能拥有一个父节点 • 常用函数: • getScale——获取缩放setScale——设置缩放addChild——添加子节点 • removeChild——删除子节点 • removeFromParentAndCleanup——从父节点移除,同时移除子节点 • removeChildByTag——移除标记节点removeAllChildrenWithCleanup——移除所有子节点 • getChildByTag——获得标记节点runAction——执行动作stopAction——停止动作 • stopAllActions——停止所有动作scheduleUpdate——执行update函数,需要重载 • unscheduleUpdate——停止执行update函数 schedule(SEL_SCHEDULE selector);——执行回调 • unschedule(SEL_SCHEDULE selector); 停止执行回调

  10. CCLayer职责与常用函数 • CCLayer,层类,继承自CCNode类,主要是起到容器和处理案件消息的作用 • registerWithTouchDispatcher注册事件监听 • ccTouchBegan按下按键处理回调,需重载 • ccTouchesMoved移动按键处理回调,需重载 • ccTouchesEnded弹起按键处理回调,需重载 • layerWithColorWidthHeight用颜色初始化函数

  11. CCMenu职责与常用函数 • CCMenu菜单类,主要用于添加按钮,处理案件消息。CCMenu从CClayer派生而来,可以处理输入消息,CCMenu包含多个CCMenuItem对象,在接收到输入消息之后,根据触摸位置,将输入消息分发到相应MenuItem,执行回调函数。 • CCMenuItem菜单项的基类,目前cocos2d只从CCMenuItem派生了CCMenuItemLabel,CCMenuItemSprite,CCMenuToggle三个类.当然也可以派生新的类,实现其它的菜单项,例如 checkbox等. • 主要函数: • menuWithItems: • 例子: • CCMenuItemSprite * timerItem = • CCMenuItemSprite::itemFromNormalSprite( • CCSprite::spriteWithFile("tomorrowVisit/syyd-ui_07a.png"), • CCSprite::spriteWithFile("tomorrowVisit/syyd-ui_07a.png")); • timerTomorrowVisitButton = CCMenu::menuWithItem(timerItem); • timerItem->setTarget(this, menu_selector(UserStateLayer::buttonTomorrowVisitAction));

  12. CCScheduler职责与常用函数 • CCScheduler类似于定时器,游戏从开始就一直有一个公用的定时器在后台运行,通过CCScheduler::sharedScheduler()可以获取,可用于定时执行某些任务 • 主要函数: • scheduleSelector定时执行回调 • scheduleUpdateForTarget定时执行update函数,需重载 • unscheduleSelector取消定时执行回调 • unscheduleUpdateForTarget取消执行update函数 • unscheduleAllSelectorsForTarget取消目标的所有定时回调 • unscheduleAllSelectors取消所有定时回调 • pauseTarget暂停目标的定时回调 • resumeTarget恢复目标的定时回调

  13. CCSprite职责与常用函数 • 精灵类,主要用于图像的绘制 • 主要函数: • spriteWithTexture通过纹理创建精灵 • spriteWithSpriteFrameName通过已经加载的大图里面的小图名字创建精灵 • spriteWithFile通过文件创建精灵 • addChild增加子节点 • removeChild删除子节点 • setPosition设置位置 • setPositionInPixels设置像素位置 • setRotation设置旋转角度 • setSkewX设置x轴扭曲 • setSkewY设置y轴扭曲 • setScaleX设置x轴缩放 • setScaleY设置y轴缩放 • setScale设置等比例缩放 • setAnchorPoint设置描点 • setIsVisible设置是否可见 • setFlipX设置x轴翻转 • setFlipY设置y轴翻转 • setContentSizeInPixel设置占用大小

  14. CCSprite职责与常用函数 • 例子: • CCSprite * textTake = CCSprite::spriteWithFile("tomorrowVisit/ui_icon_19.png"); • textTake->setPositionInPixels(ccp(16,32)); • textTake->setAnchorPoint(ccp(0,0)); • timerOnlineRewardText->addChild(textTake); • CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("UIState/UIStateDeNA.plist"); • CCSprite *sp1 = CCSprite::spriteWithSpriteFrameName("ui_icon_15a.png");

  15. CCLabelTTF职责与常用函数 • CCLabelTTF:文字类,主要用户显示文字 • 常用函数: • labelWithString通过char型数字初始化文字 • setString设置修改文字 • getString获取文字 • 例子: • CCLabelTTF* freeNum = CCLabelTTF::labelWithString(DENA_PRE_FREE_NUM, CCSizeZero, CCTextAlignmentLeft, "Marker Felt", 20);

  16. CCLabelBMFont职责与常用函数 • 另外一种文字类,类似于图片状文字。主要用于数字字符的显示,一般数字是美工做好的图片,通过特定工具比如bmfont生成.fnt文件。 • 主要函数: • labelWithString初始化字串 • setString设置字串 • getString获取字串 • 例子: • CCLabelBMFont* nNumLable1; • nNumLable1 = CCLabelBMFont::labelWithString("0", "Font/RedFont1.fnt"); • nNumLable1->setPosition(ccp(26, 7)); • numBg1->addChild(nNumLable1);

  17. CCAction职责与常用函数 • 动作:action,CCAction,动作类,CCAtion就好像指派给CCNode的命令一样,在特定时间(或立即)内修改CCNode的属性,例如位置,旋转,缩放等,主要用于动画效果 • 常用的包括: • CCSequence:序列 • CCSpawn:综合 • CCRotateTo:旋转到 • CCRotateBy:旋转 • CCMoveTo:移动到 • CCMoveBy:移动 • CCScaleTo:缩放到 • CCScaleBy:缩放 • CCFadeIn:淡入 • CCFadeOut:淡出 • CCSkewTo:扭曲到 • CCSkewBy:扭曲 • CCJumpBy:跳动 • CCBezierBy:bezier曲线

  18. CCAction职责与常用函数 • 以下是一个例子 • CCFiniteTimeAction *act1 = CCMoveBy::actionWithDuration(0.8, ccp(0, 56)); • CCFiniteTimeAction *act2 = CCFadeTo::actionWithDuration(0.8,0); • CCFiniteTimeAction *spawnAct = CCSpawn::actions(act1, act2, NULL); • iconOnlineRewardFly->runAction(CCSequence::actions( • spawnAct, • CCCallFunc::actionWithTarget(this, callfunc_selector(UserStateLayer::onlineRewardFlyOver)), • NULL)); • Act1表示向上移动56像素,act2表示淡入到0.8的透明度,spawnAct表示两者的综合。 • 此外还有一个序列,表示执行完动画之后执行UserStateLayer::onlineRewardFlyOver函数。

  19. Cocos2d基本框架类图说明 • CCApplication,负责相关平台的初始化,消息处理等,是一个单例类 • CCDirector,主要职责是管理场景和切换场景,游戏暂停等.另外他还负责初始化openes相关的一东西.也是一个单例类 • CCNode,节点类,是游戏中最重要的对象,在cocos2dk中,任何可见的或不可以的游戏逻辑对象都是一个节点 • CCAction,动作类,CCAtion就好像指派给CCNode的命令一样,在特定时间(或立即)内修改CCNode的属性,例如位置,旋转,缩放等 • CCScene场景类 • CCLayer图层类,层是一个可以绘制的区域.

  20. 游戏例子说明 • 是男人就飞1万米游戏

More Related