您的位置:首页 > 移动开发 > Cocos引擎

cocos2dx笔试题

2016-05-26 01:22 302 查看
一 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 面试