cocos2d-x面试题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

cocos2d-x部分
(本测试题采用cocos2d-x 2.1版本标准)
一.选择题
1.以下代码中第4行应该是()
1:CCObject *fun()
2:{
3: CCObject * myobj = new CCObject();
4:?
5: return myobj;
6:}
A:myobj->release() B:myobj->retain() C:myobj->autorelease() D:该行为空
2.需求:在屏幕上显示一张图片,你可以任意设置这张图片的宽高(直接设置大小,不通过缩放设置)完成这个需求,你需要创建一个()类
A:CCSprite B:CCScale9Sprite C:CCSpriteBatchNode D:CCSpriteFrame
Menu的触摸优先级是()
A:0 B: -1 C:-127 D:-128
4.创建一个CCLayer ,坐标为(0,0),锚点为(0.5,0.5),大小为(100,100),左图和右图的区别在于左图多调用了哪句()
A:ignoreAnchorPointForPosition(false) B:setPosition(ccp(-25,-25))
C:transformAncestors() D:setAnchorPoint(ccp(1,1))
5.以下是一段用lua实现的CCLayer的触摸回调函数的代码(如果不会lua可以认为是ccTouchBegan),如果我希望这个触摸函数可以屏蔽比这个Layer优先级低的所有触摸函数的调用,那么第四行代码应该是()
1:local function onTouch(eventType, x, y)
2: if eventType == "began" then
3: print(“ok”)
4:?
5: end
6:end
A:return B:setSwallowsTouches(true)
C:return true D:setTouchMode(kCCTouchesOneByOne)
6.使用CCTableView创建纵向滚动列表,窗口大小设置为600,总共需要20个cell,每一个cell大小180,当我创建完这个滚动列表并把它加到父节点显示后,总共创建了几个cell()
A:20 B:4 C:3 D:0
7.btn是一个CCControlButton变量,下面这句话是为这个按钮设置什么?
btn->setBackgroundSpriteFrameForState(sometingName,CCControlStateHighlighted)
A:设置按钮不能点击时图片 B:设置按钮不能点击时图片,且按钮状态设置为不可点击
C:设置按钮被按下时图片D:设置按钮被按下时图片,且按钮状态设置为按下
8.配置安卓的打包环境,下列哪个工具不是必须的()
A:Android SDK B:Native Development Kit
C:Java Development Kit D:Cocos Developmet Kit
9.以下哪个类采用了单例模式()
A:CCDirector B:CCSpriteFrame C:CCCamera D:CCComponentContainer
10.在CocosBuilder中,如果我需要让一张图片无论在什么分辨率的屏幕中都保持距离屏幕下方100,我应该选择哪个选项?
A B C D
11.想让一个精灵实现淡出效果(透明度100到透明度0)的变化,我需要选择哪个动作(CCAction),在这个动作的实现代码中,会调用哪个函数?
A:CCFadeOut ,setOpacity B:CCFadeIn,setTransparency
C:CCTintOut,setOpacity D:CCTintBy,setTransparency
12.以下哪个回调动作不能在回调函数的参数中传入节点类(CCNode)()
A:CCCallFunc B:CCCallFuncN C:CCCallFuncND D:CCCallFuncO
13.创建一个CCLabelTTF类显示一段文字,调用哪个函数可以实现文字换行显示功能()
A:enableShadow B:setDimensions C:disableStroke D:setSwitchLine
14.如下lua代码创建一个精灵,代码执行结束后该精灵(第5行结束后)显示的大小应该是精灵原大小的()倍,调用getContentSize的结果的宽高值是第1行执行后结果宽高值的()倍
1:local sp = CCSprite:create(“test.png”)
2:sp:setScaleX(0.4)
3:sp:setScaleY(0.6)
4:sp:setScale(0.5)
5:sp:setScaleY(0.5)
A:X轴0.2,Y轴0.15,0.5 B:X轴0.5,y轴0.5,1
C:X轴0.2,Y轴0.15,1 D:X轴0.5,Y轴0.5,0.5
15.下列哪个功能SimpleAudioEngine不能实现
A:暂停某个指定音效B:同时播放多个背景音乐C:循环播放音效D:暂停背景音乐
二.简答题
1.写一段cocos2d-x代码(lua,c++或者js实现都可以)
已知:根节点m_rootLayer,创建的节点放在根节点上就可以显示
要求实现:
(1).屏幕上显示一个图片(路径名“test.png”)
(2).显示图片的大小为原大小的一半,旋转45度
(3).在图片头顶显示一段文字”这是一个测试“,并设置为绿色,字号为20
(4).图片和字体位于屏幕居中的位置(任何分辨率)
(5).程序运行后图片先上升一段时间然后边上升边渐变消失
2.简述cocos2d-x的内存管理机制,解释release,retain,autorelese的区别。

3.简述cocos2d-x的触摸事件分发机制,如何让某个触摸事件优先触发,你是如何组织项目中的触摸事件管理的?
4.简述cocos2d-x的适配屏幕机制,你是如何处理多屏幕适配的?
5.简述你控制包大小和内存大小的方法
选择题答案:1C 2B 3D 4A 5C 6B 7C 8D 9A 10C 11A 12A 13B 14B 15B
Lua面试题
一.选择题
1.local table = {1,2,3}
table[4] = 4
table[“5”] = 5
print(“length->”..#table)
显示的结果是()
A. 2
B.3
C.4
D.5
2. 下列代码会报错的是()
A.local temp = tag or “unknown"
B.if(a != 1)then a = 1 end
C.local downloadUrl = require(“global.game_version_config").RES_DOWNLOADURL
D.setmetatable(tab,self)
3. local value = {"index", index = "a", [1] = 1};
print(value[value[1]])
显示的结果是()
A.index
B.1
C.nil
D.a
4. local value = nil
print(tostring(value == false))
显示的结果是()
A.true
B.false
C.nil
D.value
5.node:setPosition(ccp(1,1))
node:setPositionX(2)
node:getPosition()
p(2,2) B 1,1 C ccp(2,1) D 2,1
二.简答题
1.obj:func(1)和obj.func(1)有什么区别?
2.实现一个函数,将传入的任意数量的字符串拼接在一起并返回
3.写一个函数getTableLength,传入一个table表,返回这个table表中元素的数量
4.一个table表中的每个元素都是这样的格式{”id“:1,”value”:10},对table以value的值升序排序并显示排序结果
5.简述cocos2d-x和lua互相调用的方法
选择题答案1C 2B 3D 4A 5D。

相关文档
最新文档