cocos2dx笔试题

前端之家收集整理的这篇文章主要介绍了cocos2dx笔试题前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

一 cocos2d部分
1. cocos2d有哪几种缓存?分别缓存的是什么?
TextureCache 纹理缓存
SpriteFrameCache 精灵帧缓存
AnimationCache 动画缓存
2. cocos2d内存管理机制?如何优化cocos2dx 内存?
(1)引用计数
(2)使用合适恰当的纹理格式
https://www.zhihu.com/question/19946331
3. 能不能用多线程处理cocos2d的逻辑。为什么?协程行不行?
4. cocos2d-x 3.0的新特性
(1)c++11 的特性的使用比如Lambda函数,auto等新特性的使用。
(2)更改了渲染的方式(具体还得再了解,好似是把渲染拆出来了)。
(3)更改了字体的atlas 渲染方式,提高了多字的渲染效率。
(4)更改了事件派发,触摸响应不再是注册的顺序进行响应。
(5)增添了新的GUI。
(6)编辑器支持:CocoStudio
(7)在线更新功能
5. cocos2d-x 切换场景的过程
6. cocos2d-x 在什么时候释放资源比较合适
7. cocostudio 常用的控件有哪些

二 lua部分
1. lua如何实现面向对象?有什么优缺点?
元表 setMetatable
2. lua如何实现热加载?
http://blog.codingnow.com/2008/03/hot_update.html
3. lua的table是用什么数据结构实现?
在lua中一个table分成数组段和hash段俩部分,从lua5.1的原码中可以很容易的看出来,数字作为key的一般是放在数组段的,string和当数字过于离散的时候,放在hash段,通过这种方式,使得当把table当做数组使用的时候,效率可以和C的数组一样高。
http://blog.csdn.net/xbcqu/article/details/727318
4. lua的多元运算符?

三 平台相关
1. POT 和 NPOT的纹理有什么区别?用哪种好,为什么?
使用NPOT纹理

NOPT是“non power of two”的缩写,译作“不是2的幂”。NPOT stands for “non power of two”. 在cocos2d1.x的时候,你必须在ccConfig.h文件中开启对NPOT的支持,但是,cocos2d 2.x就不需要了,它默认是支持NPOT的。所有3代(iphone 3GS)以后的ios设置都支持cocos2d 2.x(因为它们支持OpenGL ES2.0),所以也都能支持NPOT纹理。

如果纹理图集(texture atlas)使用NPOT的纹理,它将有一个具大的优势:它允许TP更好地压缩纹理。因此,我们会更少地浪费纹理图集的空白区域。而且,这样的纹理在加载的时候,会少使用1%到49%左右的内存。而且你可以使用TP强制生成NPOT的纹理。(你只需要勾选“allow free size”即可)

为什么要关心NPOT呢?因为苹果的OpenGL驱动有一个bug,导致如果使用POT的纹理,则会产生额外33%的内存消耗。
2. 简单介绍下你接过的SDK有哪些,安卓,iOS
3. 说说你对MVC的了解,有什么优势?如何让代码更可读,可修改性更强?
http://www.cnblogs.com/yonge/archive/2011/11/19/2255107.html 4. 看过哪些编程方面的书,啥收获? 5. 多分辨率适配的解决方案? 6. 自动更新怎么做?

猜你在找的Cocos2d-x相关文章