2-2 Cocos2d-android-视图渲染
cocoscreator 渲染原理

cocoscreator 渲染原理
CocosCreator是一款基于Cocos2d-x引擎的游戏开发工具,它提供了一套完整的游戏开发解决方案,包括场景编辑器、UI编辑器、动画编辑器等功能。
在CocosCreator中,渲染原理是实现游戏画面显示的关键。
CocosCreator的渲染原理主要分为三个阶段:准备阶段、渲染阶段和后处理阶段。
首先是准备阶段,游戏引擎会根据场景中的节点树结构,对每个节点进行初始化和计算。
节点是游戏中的基本单位,可以是精灵、标签、按钮等。
在准备阶段,引擎会计算每个节点的位置、大小、旋转角度等属性,并将这些属性保存在一个渲染队列中。
接下来是渲染阶段,引擎会按照渲染队列的顺序,将每个节点的渲染数据发送给GPU进行处理。
渲染数据包括节点的位置、大小、纹理等信息。
GPU会根据这些信息,将节点的纹理贴到对应的位置上,并进行光照、投影等处理,最终生成游戏画面。
最后是后处理阶段,引擎会对渲染结果进行一些额外的处理,如模糊、反射等效果。
这些处理通常是通过着色器来实现的,着色器是一种在GPU上运行的程序,用于对渲染结果进行特殊处理。
总的来说,CocosCreator的渲染原理是通过将节点的渲染数据发送给GPU,让GPU进行处理并生成游戏画面。
这个过程包括准备阶段、
渲染阶段和后处理阶段,每个阶段都有不同的任务和功能。
通过合理利用这些功能,开发者可以实现各种丰富多样的游戏效果。
如何使用Android的硬件加速和图像渲染优化进行游戏开发(九)

使用Android的硬件加速和图像渲染优化进行游戏开发Android平台的游戏开发一直以来备受开发者的关注,而如何优化游戏的性能则是一个不可忽视的问题。
本文将介绍如何利用Android 的硬件加速和图像渲染技术来优化游戏的开发过程。
一、了解Android的硬件加速机制Android平台从版本开始引入了硬件加速机制,通过使用硬件来处理应用的图形渲染,减轻了CPU的负担,提高了游戏的性能和流畅度。
开发者可以通过在文件中指定应用的硬件加速属性来启用硬件加速。
二、使用OpenGL ES进行图像渲染OpenGL ES是一种跨平台的图形库,可以实现高性能的2D和3D图形渲染。
在Android平台上,开发者可以使用OpenGL ES来进行游戏的图像渲染,并结合硬件加速来提高游戏的性能。
1. 初始化OpenGL ES环境在游戏的初始化阶段,开发者需要创建一个OpenGL ES的上下文,并设置视窗和视口大小。
同时,还需加载游戏所需的纹理和模型等资源。
2. 利用OpenGL ES进行渲染在游戏的渲染循环中,开发者需要利用OpenGL ES提供的绘制函数来绘制游戏的场景。
可以使用顶点缓冲对象和索引缓冲对象来提高绘制效率,并通过纹理映射来实现细腻的贴图效果。
3. 优化OpenGL ES的性能为了进一步提高游戏的性能,开发者可以使用一些优化技巧。
例如,尽量减少OpenGL ES状态的切换,合并绘制调用,考虑使用纹理压缩等。
三、利用硬件加速进行动画渲染在游戏中,动画的表现往往对用户体验影响很大。
Android平台提供了一套用于处理动画的API,开发者可以利用硬件加速来提高动画的渲染效果。
1. 使用属性动画属性动画是一种可以对指定属性进行平滑动画过渡的机制。
开发者可以利用属性动画来实现游戏中的角色移动、缩放、旋转等效果,并通过硬件加速来提高动画的流畅度。
2. 使用SurfaceView进行游戏渲染SurfaceView是一种特殊的View,可以在独立的线程中进行渲染。
如何使用Android的硬件加速和渲染优化进行绘图开发(一)

Android作为目前最流行的移动操作系统之一,拥有强大的绘图开发能力。
为了实现流畅的用户界面和良好的用户体验,使用Android 的硬件加速和渲染优化是非常重要的。
本文将从硬件加速的原理和渲染优化的方法两个方面,深入探讨如何使用Android的硬件加速和渲染优化进行绘图开发。
一、硬件加速的原理硬件加速是指利用硬件的计算能力来加速图形渲染过程。
在Android中,硬件加速由GPU(Graphics Processing Unit,图形处理器)来完成。
它可以在图形渲染过程中执行部分计算任务,以提高绘图的速度和质量。
具体来说,硬件加速主要有以下几个方面的原理和技术支持。
1. GPU的并行计算能力:与传统的CPU相比,GPU具有更强的并行计算能力。
在绘图过程中,可以借助GPU的并行计算能力,同时处理多个图元的绘制,从而提高绘图的效率。
2. 2D和3D图形渲染技术:GPU支持2D和3D图形渲染技术,可以在硬件层面上实现图形的绘制和变换。
这样可以避免将计算任务交给CPU来执行,减轻了CPU的负担,提高了绘制的速度和质量。
3. 纹理映射和深度测试:GPU支持纹理映射和深度测试等技术,可以优化纹理的绘制和处理过程。
通过使用纹理贴图,可以实现逼真的绘制效果;而深度测试则可以实现图形的遮挡效果,提高视觉效果。
二、渲染优化的方法除了硬件加速,渲染优化也是开发中需要重点关注的方面。
通过优化绘图的渲染过程,可以进一步提高应用的性能和用户体验。
下面介绍几种常见的渲染优化方法。
1. 减少绘制次数:绘制次数是影响性能的重要因素之一。
在绘制过程中,减少不必要的绘制操作,只绘制发生变化的部分,可以减少绘制次数,提高性能。
2. 使用缓存机制:在绘制过程中,可以使用缓存机制来缓存已经绘制好的图形,下次绘制时直接使用缓存的结果。
这样可以避免重复的绘制过程,提高绘图的效率。
3. 异步绘制:将绘制操作放在子线程中进行,不阻塞主线程的执行。
cocoscreator渲染流程

cocoscreator渲染流程Cocos Creator是一款基于Cocos2d-x引擎的游戏开发工具,它提供了一个简单易用的可视化界面,可以帮助开发者快速创建游戏。
Cocos Creator的渲染流程是指在游戏运行时,如何将游戏对象显示在屏幕上。
下面我们将详细介绍Cocos Creator的渲染流程,并解释其中的关键步骤。
1. 初始化引擎:当游戏启动时,首先需要初始化Cocos Creator引擎。
引擎初始化的过程中会加载和配置一些必要的资源和环境,例如加载游戏配置文件和初始化图形渲染上下文等。
2. 场景管理:Cocos Creator使用场景来管理游戏对象,每个场景都可以看作是一个独立的游戏关卡。
在渲染流程中,需要先加载和切换到指定场景,然后才能渲染场景中的游戏对象。
3. 游戏对象渲染:Cocos Creator使用节点树的方式来管理游戏对象,每个节点都可以附着一个或多个组件。
在渲染流程中,需要递归地遍历场景中的节点树,对每个节点进行渲染。
5. 渲染管线:Cocos Creator使用渲染管线来控制和优化渲染过程。
渲染管线是一系列渲染阶段的集合,每个渲染阶段都有特定的目的,例如清空屏幕、绘制背景、绘制不透明物体等。
在渲染流程中,需要按照管线的顺序执行各个渲染阶段。
6. 摄像机:在渲染流程中,摄像机用来控制游戏对象在屏幕上的可见区域。
Cocos Creator支持多个摄像机,并且每个摄像机可以有不同的参数和视角。
在渲染流程中,需要根据每个摄像机的参数来计算游戏对象的可见性,并进行相应的裁剪和混合处理。
7. 渲染队列:Cocos Creator使用渲染队列来管理渲染顺序和状态。
渲染队列是一个有序的列表,每个渲染项都有一个优先级和一个渲染函数。
在渲染流程中,需要将渲染项按照优先级插入到渲染队列中,并依次执行各个渲染项的渲染函数。
8.渲染输出:最后,将渲染队列中的结果输出到屏幕上,显示给玩家。
在渲染流程中,可以选择不同的渲染目标,例如屏幕、纹理或者渲染缓冲区等。
cocos 2dx 场景切换效果原理

cocos 2dx 场景切换效果原理Cocos2d-x 是一个流行的开源游戏引擎,用于开发2D和3D游戏。
场景切换是游戏开发中常见的操作,Cocos2d-x提供了丰富的场景切换效果。
这些切换效果的原理通常涉及以下关键概念:场景(Scene):在Cocos2d-x中,场景是游戏中的一个独立画面或游戏状态。
每个场景通常包含游戏对象、精灵、图层和其他元素。
你可以创建多个场景,然后在它们之间切换。
切换场景(Scene Transition):Cocos2d-x提供了不同的切换场景效果,允许你在不同的场景之间切换。
切换场景的效果是通过一种称为场景过渡(Scene Transition)的机制来实现的。
过渡类(Transition Class):Cocos2d-x中有各种过渡类,它们实现了不同的切换效果。
例如,TransitionFade, TransitionFlipX, TransitionSlideInT, 等等。
你可以选择合适的过渡类来实现你想要的切换效果。
场景切换的基本原理如下:创建一个新的场景对象,例如Scene* newScene = MyNewScene::create();,其中 MyNewScene 是你要切换到的新场景。
使用适当的过渡类创建一个场景过渡对象,例如TransitionFade* transition = TransitionFade::create(1.0f, newScene);,其中 1.0f 是过渡时间,newScene 是你创建的新场景。
使用过渡对象切换场景,例如Director::getInstance()->replaceScene(transition);。
这将导致当前场景以你选择的切换效果过渡到新场景。
这个过程是通过Cocos2d-x引擎内部的渲染和动画机制来实现的。
以下是一个示例,展示如何在Cocos2d-x中切换场景并使用淡出效果:// 创建新场景Scene* newScene = MyNewScene::create();// 创建淡出过渡效果TransitionFade* transition = TransitionFade::create(1.0f, newScene);// 切换场景Director::getInstance()->replaceScene(transition);这只是一个简单的示例,Cocos2d-x提供了更多强大的切换效果和定制选项,你可以根据你的游戏需求选择合适的切换方式。
【转】cocos2d-x的opengl渲染过程总结

【转】cocos2d-x的opengl渲染过程总结最近⼏天,我都在学习如何在Cocos2d-x3.2中使⽤OpenGL来实现对图形的渲染。
在⽹上也看到了很多好的⽂章,我在它们的基础上做了这次的我个⼈认为⽐较完整的总结。
当你了解了Cocos2d-x3.2中对图形渲染的流程,你就会觉得要学会写⾃⼰的shader才是最重要的。
第⼀,渲染流程从2.x到3.x的变化。
在2.x中,渲染过程是通过递归渲染树(Rendering tree)这种图关系来渲染关系图。
递归调⽤visit()函数,并且在visit()函数中调⽤该节点的draw函数渲染各个节点,此时draw函数的作⽤是直接调⽤OpenGL代码进⾏图形的渲染。
由于visit()和draw函数都是虚函数,所以要注意执⾏时的多态。
那么我们来看看2.x版本中CCSprite的draw函数,如代码1。
代码1:[cpp]1. //这是cocos2d-2.0-x-2.0.4版本的CCSprite的draw函数2. void CCSprite::draw(void)3. {4. CC_PROFILER_START_CATEGORY(kCCProfilerCategorySprite, "CCSprite - draw");5. CCAssert(!m_pobBatchNode, "If CCSprite is being rendered by CCSpriteBatchNode, CCSprite#draw SHOULD NOT be called");6. CC_NODE_DRAW_SETUP();7. ccGLBlendFunc( m_sBlendFunc.src, m_sBlendFunc.dst );8. if (m_pobTexture != NULL)9. {10. ccGLBindTexture2D( m_pobTexture->getName() );11. }12. else13. {14. ccGLBindTexture2D(0);15. }16. //17. // Attributes18. //19. ccGLEnableVertexAttribs( kCCVertexAttribFlag_PosColorTex );20. #define kQuadSize sizeof(m_sQuad.bl)21. long offset = (long)&m_sQuad;22. // vertex23. int diff = offsetof( ccV3F_C4B_T2F, vertices);24. glVertexAttribPointer(kCCVertexAttrib_Position, 3, GL_FLOAT, GL_FALSE, kQuadSize, (void*) (offset + diff));25. // texCoods26. diff = offsetof( ccV3F_C4B_T2F, texCoords);27. glVertexAttribPointer(kCCVertexAttrib_TexCoords, 2, GL_FLOAT, GL_FALSE, kQuadSize, (void*)(offset + diff));28. // color29. diff = offsetof( ccV3F_C4B_T2F, colors);30. glVertexAttribPointer(kCCVertexAttrib_Color, 4, GL_UNSIGNED_BYTE, GL_TRUE, kQuadSize, (void*)(offset + diff));31. glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);32. CHECK_GL_ERROR_DEBUG();33. #if CC_SPRITE_DEBUG_DRAW == 134. // draw bounding box35. CCPoint vertices[4]={36. ccp(m_sQuad.tl.vertices.x,m_sQuad.tl.vertices.y),37. ccp(m_sQuad.bl.vertices.x,m_sQuad.bl.vertices.y),38. ccp(m_sQuad.br.vertices.x,m_sQuad.br.vertices.y),39. ccp(m_sQuad.tr.vertices.x,m_sQuad.tr.vertices.y),40. };41. ccDrawPoly(vertices, 4, true);42. #elif CC_SPRITE_DEBUG_DRAW == 243. // draw texture box44. CCSize s = this->getTextureRect().size;45. CCPoint offsetPix = this->getOffsetPosition();46. CCPoint vertices[4] = {47. ccp(offsetPix.x,offsetPix.y), ccp(offsetPix.x+s.width,offsetPix.y),48. ccp(offsetPix.x+s.width,offsetPix.y+s.height), ccp(offsetPix.x,offsetPix.y+s.height)49. };50. ccDrawPoly(vertices, 4, true);51. #endif // CC_SPRITE_DEBUG_DRAW52.53. CC_INCREMENT_GL_DRAWS(1);54.55. CC_PROFILER_STOP_CATEGORY(kCCProfilerCategorySprite, "CCSprite - draw");56. }那么我们也看看3.x中Sprite的draw函数,如代码2。
cocos-lua的rendertexture用法
cocos-lua的rendertexture用法在Cocos2d-x中,CocosLua是用Lua语言编写的Cocos2d-x的绑定库。
RenderTexture是一个在屏幕外部创建的纹理,并且可以将您的屏幕渲染到这个纹理上,从而可以实现各种效果。
使用RenderTexture可以创建实时渲染的效果,截图,或者将某个节点作为纹理在其他地方使用,以下是RenderTexture 的基本用法:1. 创建一个RenderTexture对象:lualocal renderTexture = cc.RenderTexture:create(screen_width, screen_height)2. 开始渲染:luarenderTexture:begin()3. 在渲染的过程中绘制你想要显示的内容,比如一个场景或者一个节点:lua 将当前场景渲染到RenderTexture上local scene = cc.Director:getInstance():getRunningScene()renderTexture:beginWithCle ar(0, 0, 0, 0) 清除RenderTexture默认颜色scene:visit() 渲染场景到RenderTexture上renderTexture:endToLua() 结束渲染4. 将RenderTexture渲染的结果显示出来:lualocal sprite =cc.Sprite:createWithTexture(renderTexture:getSprite():getTexture()) 设置位置和大小等属性sprite:setPosition(cc.p(0, 0))sprite:setAnchorPoint(cc.p(0, 0))sprite:setFlippedY(true) 添加到当前节点中self:addChild(sprite)通过以上步骤,您就可以使用RenderTexture将屏幕渲染到一个纹理上,并在其他地方使用它,实现各种效果。
cocos2dx scrollview visit的用法 -回复
cocos2dx scrollview visit的用法-回复Cocos2d-x 是一个面向多平台的开源游戏开发框架,被广泛应用于移动游戏开发。
其中的ScrollView(滚动视图)是一个重要的UI 组件,可以帮助我们处理游戏中的滚动内容。
本文将详细介绍Cocos2d-x ScrollView 的用法,帮助读者快速掌握基本操作和常见问题的解决方法。
# 什么是ScrollView?ScrollView 是Cocos2d-x 提供的一种容器控件,用于显示超出屏幕大小的内容,并支持用户滚动、拖拽操作。
它常用于展示游戏中的地图、角色属性、游戏规则等需要占用较大空间的内容。
# ScrollView 的基本用法在Cocos2d-x 中使用ScrollView,我们需要按照以下步骤操作:创建ScrollView 对象首先,我们需要在游戏场景(Scene)中创建ScrollView 对象。
通常,我们会在场景的初始化阶段完成这一步骤。
以下是创建ScrollView 的基本代码:cppauto scrollView = cocos2d::ui::ScrollView::create();scrollView->setContentSize(cocos2d::Size(500, 300)); ScrollView 的可视大小scrollView->setInnerContainerSize(cocos2d::Size(1000, 600)); ScrollView 中内容的大小scrollView->setPosition(cocos2d::Vec2(100, 100)); ScrollView 的位置this->addChild(scrollView);以上代码创建了一个大小为500x300 的ScrollView,其中包含一个大小为1000x600 的内容区域(Inner Container)。
Android 性能优化之渲染性能
Android 性能优化之渲染性能Android平台上的应用程序性能优化是一个重要的课题,其中渲染性能是其中一个关键方面。
在移动设备上,渲染性能的问题往往导致应用程序的卡顿或者界面不流畅,从而影响用户的体验。
因此,对于Android应用程序开发者来说,理解并优化渲染性能是至关重要的。
一、渲染性能的重要性在Android系统中,渲染性能的重要性不言而喻。
在用户操作界面时,系统需要将应用程序的布局和视图元素转化为可视化的UI界面。
这个过程涉及到许多步骤,包括测量、布局、绘制和合成等。
如果应用程序在渲染过程中存在性能问题,就会导致界面的显示不流畅。
这可能会造成界面的闪烁、卡顿或者迟缓的响应。
因此,优化渲染性能对于提升用户体验至关重要。
二、渲染性能优化的方法在优化渲染性能时,我们可以采取以下几种方法:1. 减少视图层级视图层级过多会增加系统渲染的复杂性,导致性能下降。
因此,我们应该尽量减少视图层级的嵌套,可以通过使用FrameLayout等容器布局来减少嵌套。
同时,合理使用ViewStub和Merge标记等技术来缩减视图层级。
2. 避免频繁的布局请求频繁的布局请求会导致多次执行布局测量和布局绘制的过程,从而降低渲染性能。
因此,在应用程序中,我们应该合理处理布局请求的触发时机,在必要的情况下使用requestLayout()方法,避免过度的布局请求。
3. 使用有效的绘制技术绘制是渲染性能的核心环节。
我们可以通过使用有效的绘制技术来提高渲染性能。
例如,使用合适的绘制通道,避免频繁的绘制调用,使用硬件加速等技术。
4. 图片的优化图片在应用程序中往往占据较大的内存空间,并且需要较长的加载时间。
因此,对于图片的处理是提高渲染性能的一个重要方面。
我们可以通过使用适当的图片压缩算法、合理的图片缓存机制以及懒加载等技术来减少图片加载的时间和内存消耗。
5. 合理利用动画动画在Android应用程序中广泛使用,但过多或者复杂的动画效果会导致性能下降。
Android2.2、2.3、4.0 中如何使用GPU硬件加速原理 和游戏3D性能的提升 实现GPU渲染
Android2.2、2.3、4.0 中如何使用GPU硬件加速原理和游戏3D性能的提升实现GPU渲染资料来自网络收集。
1.名词解释GPU:Graphic Processing Unit (图形处理器)OpenGL:Open Graphic Library 定义了一个跨编程语言、跨平台的编程接口的规格,不同厂商会有不同的实现方法,它主要用于三维图象(二维的亦可)绘制。
SurfaceFlinger:Android中负责Surface之间叠加、混合操作的动态库Skia:Android中的2D图形库libagl:Android中通过软件方法实现的一套OpenGL动态库libhgl:为区别libagl,自定义的一种叫法。
特指GPU厂商提供的硬件实现的OpenGL composition:特指SurfaceFlinger对各个Surface之间的叠加、混合操作render:特指使用OpenGL动态库进行3D渲染copybit:Android使用2D引擎来加速图形操作(主要是Surface之间的composition操作)的一种技术,对应着一个或几个动态库。
pmem:Android特有驱动,从linux内核中reserve物理连续内存,可以为2d、3d引擎、vpu等设备分配物理连续内存。
3D、2D引擎在Android中的使用方法2.1 Android如何使用2D、3D引擎Android在启动后,会在运行时根据配置文件加载OpenGL(libagl & libhgl)的实现,如果有libhgl实现,默认使用libhgl实现,否则使用libagl实现。
Android OpenGL动态库使用方法:1. 判断是否含有egl.cfg文件,如果没有在加载libagl2. 如果有egl.cfg文件,则解析egl.cfg文件,根据egl.cfg文件加载对应libhgl和libagl3. 分别解析libagl和libhgl,获取libagl和libhgl中标准OpenGL函数的函数地址(函数指针)4. 系统在执行过程中,会通过函数指针调用到libagl或者libhgl中去,从而实现图形的绘制。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• makeLabel(String string, String fontname, float fontsize)
– 基本流程:
• 创建CCLabel文字对象
• 设置锚点和位置
• 添加到图层上
2014/3/11
刘士龙
渲染文字
• 渲染图片文字:
– CCBitmapFontAtlas对象:
目录
1 2 3
Cocos2d-android类简介 渲染图片
渲染文字
2014/3/11
刘士龙
渲染图片
• Cocos2d坐标轴系统:
– Android View框架坐标体系:
– Cocos2d坐标体系:
– 锚点:矩形的位置参考点,相对于矩形本身而言。
锚点(0,0) 位置(10,5)
2014/3/11 刘士龙
– 生命周期相关:
• pause( ) :暂停游戏渲染 • resume( ) :重新开始游戏渲染 • end( ):停止游戏渲染
– 其它:
• CGSize winSize( ):获取当前视图大小
2014/3/11 刘士龙
场景(CCScene)
• 场景:游戏中的关卡。
– 创建场景方法:
• public static CCScene node( ):生成一个空的场景。
Android游戏开发
第2-2讲 视图渲染
目录
1
Cocos2d-android类简介 渲染图片 渲染文字
2
3
2014/3/11
刘士龙
目录
1
Cocos2d-android类简介
2
3
渲染图片
渲染文字
2014/3/11
刘士龙
导演(CCDirector)
• 导演:游戏执行的总指挥,负责游戏全过程的游 戏场景切换。 • CCDirector类使用方法:
2014/3/11 刘士龙
结点(CCNode)
• CCNode类:Cocos2d核心类,大部分使用的游 戏元素都继承自该类。
– 获取子元素结点:
• getChildren( ):获取所有子结点
• getChildByTag(int tag) :通过tag获取子结点
– 定时任务相关:
• schedule(String selector) • schedule(String selector, float interval) • unschedule(String selector) • unscheduleAllSelectors( )
– 获取CCDirector对象:
• static CCDirector sharedDirector( );
– 绑定CCGLSurfaceView对象:
• boolean attachInView( View view );
– 相关设置方法:
• • • • setAnimationInterval(double interval) :设置动画间隔 setDeviceOrientation(int orientation):设置屏幕方向 setDisplayFPS(boolean value) :设置是否显示FPS setScreenSize(float width, float height) :设置屏幕大小
2014/3/11 刘士龙
结点(CCNode)
• CCNode类:Cocos2d核心类,大部分使用的游 戏元素都继承自该类。
– 动作相关:(精灵中常常使用)
• runAction(CCAction action) :执行一个动作
• stopAllActions( ):停止所有动作 • stopAction(CCAction action) :停止指定Action • stopAction(int tag) :停止指定tag的Action • getAction(int tag) :获取指定tag的Action • numberOfRunningActions( ):当前运行的Action个数
• bitmapFontAtlas(CharSequence string, String fntFile)
– 基本流程:
• 创建CCBitmapFontAtlas文字对象
• 设置锚点和位置
• 添加到图层上
2014/3/11
刘士龙
内容回顾
1 2 3
Cocos2d-android类简介 渲染图片
渲染文字
– 其它方法
• isKeyEnabled( ) 、isTouchEnabled( ) • 传感器相关事件
2014/3/11 刘士龙
精灵(CCSprite)
• 精灵:游戏开发中所需要处理的主要对象,一切 可以动的东西都称之为精灵。
– 创建精灵:
• CCSprite(String filepath) :通过指定图片文件名生成精灵
2014/3/11 刘士龙
图层(CCLayer)
• 图层:场景是由一个一个图层组合起来的。
– 触摸事件相关回调方法:
• ccTouchesBegan(MotionEvent event) :手指刚触摸屏幕时 • ccTouchesMoved(MotionEvent event):手指在屏幕移动时 • ccTouchesEnded(MotionEvent event) :手指离开屏幕时
渲染图片
• Cocos2d坐标轴系统:
2014/3/11
刘士龙
渲染图片
• 渲染图片基本流程:
– 创建图片精灵
– 设置锚点和位置
– 设置缩放比例 – 添加图片到图层
2014/3/11
刘士龙
目录
1
Cocos2d-android类简介
2
3
渲染图片
渲染文字
2014/3/11
刘士龙
渲染文字
• 渲染简单文字:
– 删除元素结点:
• removeAllChildren(boolean cleanup) :删除所有子元素
• removeChild(CCNode child, boolean cleanup) • removeChildByTag(int tag, boolean cleanup)
• removeFromParentAndCleanup(boolean cleanup)
2014/3/11
刘士龙
2014/3/11 刘士龙
图层(CCLayer)
• 图层:场景是由一个一个图层组合起来的。
– 创建图层:node( ) – 生命周期相关回调方法:
• onEnter( ):刚进入该图层时,回调该方法 • onExit( ):离开当前场景时,回调该方法
– 键盘相关事件回调方法:
• ccKeyDown(int keyCode, KeyEvent event):键盘被按下 • ccKeyUp(int keyCode, KeyEvent event) :键盘被弹起
– 继承CCNode类相关方法。
2014/3/11
刘士龙
结点(CCNode)
• CCNode类:Cocos2d核心类,大部分使用的游 戏元素都继承自该类。
– 添加子元素结点:
• CCNode addChild(CCNode child) • CCNode addChild(CCNode child, int z) • CCNode addChild(CCNode child, int z, int tag)
2014/3/11ຫໍສະໝຸດ 刘士龙结点(CCNode)
• CCNode类:Cocos2d核心类,大部分使用的游 戏元素都继承自该类。
– 位置大小相关:
• getContentSize( ):获取当前结点表示的内容大小
• setContentSize(float w, float h):设置内容大小 • setPosition(CGPoint pnt) :设置该结点锚点起始坐标位置 • setAnchorPoint(CGPoint pnt) :设置锚点坐标 • setAnchorPoint(float x, float y) :设置锚点坐标 • setScale(float s):设置当前结点缩放比例 • setScaleX(float sx)、setScaleY(float sy)
(图片文件位于assets目录下) • CCSprite(Bitmap image, ng.String key) :通过 Bitmap对象创建精灵 • CCSprite(CCTexture2D texture):通过纹理图创建精灵
– 其它方法在“精灵和动作”部分详细介绍
2014/3/11 刘士龙
2014/3/11
刘士龙
导演(CCDirector)
• CCDirector类使用方法:
– 管理场景相关方法:
• • • • runWithScene(CCScene CCScene) :运行指定场景 popScene( ):弹出场景 pushScene(CCScene CCScene):压入场景 replaceScene(CCScene CCScene) :替换当前运行场景