




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Cocos2d-x面试题(无脑码农)1,阐述 cocos2d-x 中 CCScene CCLayer CCSprite CCNode斗gwr J-i. A 舛 i -Jip<fer ccct'J2z sc-sns j邛,吟 遭 j n m" W。.帕/E mx陋 匕 盅-b” p 三峭 即。 解接* utn.皿射而irw” 国 jw闻 fJw 即 制 & KKU 仲The CCNode Class HierarchyAl口鼻小鼻 Mfnrrgni 口工工 dug 1gs i whch a lot ythe UEEFaroper 簿 ana 2门小,excepi
2、ng todsslhs rwie. f gyre 3-2 sno*s tn most nqartan* claasas dented *rem C£.Nede. These sfa the or>es youf! I vB«ir4 轼HTi most cr*?sr ahH you Ed" act ja v rrake qung iniExess; gani-h A-itlh jueI Ujcsw =三上MrfcenePkyer 印 rif eScgreQbeleMenuPhverWeipcnSprilePaLi»Mtnuktem OptioniMt
3、nultemCCSceneCCScene是app工作流程上独立块,一个 app可能拥有多个scene ,但是在任何时候只能有 一个是激活状态的。一个 CCScene对象由一个或多个 CCLayer组成,layer之间是前后相连 的。Layer提供了 scene的外观和行为。通常的用法是直接用一个或多个layer实例化一个sceneCCScene勺子类CCTrasitionScene 实现移动transitions ,提供两个scene之间的转移效果, 由于scene是CCNode的子类,所以scene可以手工或者用 aciton来转变坐标。所有层和精 灵都是他的(子节点) children 。
4、CCScene的4个基本方法:runWithScene (运行画面),replaceScene (替换场景例如从主菜单进入游戏界面),pushScene (暂停界面),popScene (从暂停的界面还原到游戏界面)Layers :CCLayer同样是CCNode勺子类,通常用 addChild方法添加子节点。CCLayer对象定义了可描绘的区域,定义了描绘的规则。CCLayer可以实现半透明的效果,层的事件相应机制:最外层最先接受到事件(屏幕触碰),最后是底层,如果在 某层处理了该事件,则后面的层不会在接受到事件信号Spritescocos2d的sprite 对象就是一个可以移动、选择、伸缩
5、、动画的2d图形,CCSprite 对象的子成员中可以包含其它的 CCSprite对象。当CCSprite对象转换坐标系 的时候,它所包含的CCSprite对象也会转换转换坐标系。sprites 是CCNode的 子类,所以他们也可以使用actions来转换坐标.See Actions for more detail about actions.它是一个抽象类,没有可视化表示形CCNod恳场景、层、菜单、精灵等所有节点的父类,式,定义了所有node共有的属性和方法。2,说一下 CCAction 和 CCActionMessagerCCAction是动作的基类,主要使用CCFiniteTimeA
6、ction有限次动作执行,就是 按时间顺序执行一系列动作,执行完后动作结束;CCFiniteTimeAction 又分为 CCActionInstanse (瞬时动作的基类)和 CCActionInterval(延时动作的基类)。CCActionInstanse :没什么特别,跟CCActionInterval 主要区别是没有执行过程,动作瞬间就执行完成了 ; CCActionInterval :执行需要一定的时间(或者说一个过程)。我们用的最多的 就是延时动作,下面对它进行单独介绍。CCActionMessage是管理所有Action的单例,一般情况下并不直接使用这个单 例,而是使用CCNo
7、de勺接口,但是假如你想操作的目标不是 CCNode勺子类或者 你想暂停/恢复行动就要使用到CCActionMessager3,你常用的cocos2d-x工具TiledMap (地图编辑器)ParticleEditor(粒子编辑器)cocosBuilder(可视化编辑)Texture Packer(图片组合工具)等4,简述:CCDirector CCEGLView CCEGLViewProtocolCCDirector是singleton 模式的共享的对象。它知道当前哪个scene是激活。CCDirector以stack的方式处理scenes的调用(当另一个 scene进入的时候,暂停当前的
8、scene ,完 成之后再返回原来的 scene ), CCDirector 负责更换 CCScene,在CCLayer被push的时候, 更换或结束当前的 scene。另外:CCDirector 负责初始化OpenGL ES 作用: 1.访问和改变场景 2.访问cocos2d的配置细节3 .访问视图,(openGL, UIView, UIWindow )4 .暂停,恢复和结束游戏5 .在UIKit和OpenG民间转换坐标CCEGLView CCEGLViewProtocol的子类,是用于屏幕适配(这个问题还没全解决啊)5,简述 CCSpriteframeCache CCSpriteBatch
9、Node ,并说出CCNode CCSprite是如何实现绘制的CCSpriteFrameCache缓存了所有CCSpriteFrame. 可以一下方式获取特定 frame并设定给Sprite. 前提是文件已经缓存CCSpriteBatchNode 中的所有 CCSprite只会被渲染1次,因此可以提高游戏的 FPS 限制:加入到 CCSpriteBatchNode 中的CCSprite必须使用同一张纹理图。比如游戏中的子弹就很适合用它,因为子弹都是一个样子。通过 TexturePacker生成的纹 理图也适合使用它。(第二问不会)6 , cocos2d-x的屏幕适配解决方案之后pEGLVie
10、w->setDesignResolutionSize(480, 320, kResolutionNoBorder); 第三 个参数,找到定义:讲得很清楚了:kResolutionExactFit :会靠拉伸来填满屏幕,本例来说背景图会变形来填充屏 幕,因为1024:768=, 480:320=,宽高比不同,图片也就无法等比缩放来填满屏 幕,只能变形了。kResolutionNoBorder :看不到黑边,实际就是宽高等比缩放,但缩放比例取宽 比和高比之中大的那一个。kResolutionShowAll :全部显示,可以理解为保证内容都显示在屏幕之内,实际也是宽高等比缩放,但缩放比例取宽比
11、和高比之中小的那一个。一般来说,我们希望设计时一屏的内容,用户在实际设备上也能在一屏内看 到,拿本例来说,1024x76盼辨率时,右下角的按钮却跑到屏幕外去了。看完上 面的分析,你应该知道如何解决了: 对了,改变 pEGLView->setDesignResolutionSize(480, 320, kResolutionNoBorder); 第三 个参数为 kResolutionShowAll 。7 , cocos2d-x聊天的实现,对话框 字符集 字体描边 输入法8,cocos2d-x 游戏储存CCUserDefault 和 SQListCCUserDefalt存在的的问题1 .没有
12、记录和表的概念你会发现,如果要设置多存档,必须自己操作,而且代码会变得复杂,容易出错。 对于简单的游戏可以使用 CCUserDefalt ,但是对于复杂游戏,可以考虑使用 SQLite。2 .没有数据类型安全比如,如果你错写把一个Integer按Bool读取,是没有错误提示的3 .没有存档数据完整性的校验我们找到之前的存档记录, 用CCUserDefault: getXMLFilePath ()可以获得存档 位置,打开它9, cocos2d-x内存管理cocos2d-x最初移植自cocos2d的objective C 版本。因此,在内存管理上, 使用了和NSObject类似的引用计数器方法,相
13、关接口放置在 CCObject类中c引用计数器一一手动管理内存CCObject的及其子类的对象在创建时,引用计数自动设置为1。之后每次调用retain ,引用计数+1。每次调用release ,引用计数-1 ;若引用计数=0, 则直接 delete this 。retain是在指针传递和赋值时使用的,他的含义是表示拥有。这经常用在指 针赋值上。自动释放池一一自动管理内存对于使用autorelease 的对象,不必管它,每帧结束后会自动释放。CCNodef点管理cocos2d-x使用节点组成一棵树,渲染的时候要遍历这棵树。CCNode!所有节点类的父类,他内部使用了一个 CCArray对象管理他的所有子节点,当对 象被添加为子节点时,实际上是被添加到CCArray对象中,同时会调用这个对象的retain 方法。同理,从 CCArray中移除时,也会调用 release方法。静态工厂cocos2d-x中存在大量的静态工厂方法,这些方法中,全都对
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 幼儿园教育随笔撰写培训
- 固定电话服务协议书范本
- 二零二五年度电商企业签约带货主播佣金分成合同
- 二零二五年度绿色建筑财务担保合同账务管理细则
- 二零二五年度环保技术研发借款连带担保合同
- 二零二五年度桉树种植补贴申请合同范本
- 2025年度猪场品牌授权与转让合同
- 二零二五年度水果电商平台合作推广合同
- 2025年度矿山矿石运输保险及索赔处理合同
- 二零二五学生校园意外伤害赔偿保险协议
- 旧设备安全拆除施工方案范本
- 居住区规划设计案例分析1535793655
- 广东省通用安装工程综合定额(2018)Excel版
- 思想道德与法治2023版教学设计第二章 追求远大理想 坚定崇高信念
- 华南理工大学硕士论文格式模板
- 电子商务概论目录
- 装修返工合同
- 直流滤波电感设计
- 消力池砼施工工法
- 电力工程安全保证体系及措施
- 国家职业类别1-6类明细表
评论
0/150
提交评论