文章标题

– 1.cocos2dx事件分发机制
– 答:获取分发中心,创建监听事件,设置处理函数,注册
– 2.cocos2dx单点触摸的优先级是
– 答:注册时数字越小的,优先级越大,同样是默认注册的情况下,在上面的(后注册)的优先级比较大
– 3.缓存的作用,cocos2dx有哪些缓存
– 答:缓存是以空间换时间,加快缓存速度
–精灵帧缓存 纹理缓存
– 4.png图片占内存的计算方式
– 答:长*宽*4
– 5.减少内存开销方法
– 答:将小图合成大图,压缩图片,延迟加载,分部加载,及时释放
– 6.为什么将小图合成大图
– 答:节省空间:小图片形状不规则,开辟空间可能过大,将小图合成大图可以节省空间
– 7.http的get和post的区别
– 答:get传输数据快速,不安全;post传输数据量大,安全
– 8.box2d的使用流程
– 答:创建物理世界,设置重力;创建精灵,创建刚体;设置精灵和刚体的位置相同;碰撞帅选。
– 9.box2d的碰撞筛选
– 答:组的优先级高,如果组相同,并且都为正,则发生碰撞,如果组相同都为负,则不发生碰撞,如果组号不同,或者同为0,则看类别和掩码,两个刚体的类别和掩码相互按位与,如果两个值都非0,则发生碰撞。
– 10.单例模式怎么实现
– 答:构造函数私有、提供一个函数获取实例对象
– 11.开发中使用lua的优势,缺点了?
– 答:是一种脚本语言,基本可以在任何编译器下编译,便于扩展和定制服务,完整的lua不过200k,小巧方便
– 12.lua的数据类型
– 答:number、string、boolean、nil,function,table,thread,userdata
– 13.cocos2dx的内存管理
– 答:引用计数
– 14.哪些操作会影响一个对象的引用计数
– 答: retain ,release,addChild,addObject,autorelease.
– 15.lua中t2是一个表,则执行t1=t2之后,t1与t2的关系是?
– 答:指向同一个表
– 16.lua 开发环境的搭建流程
– 答:运行终端 cd 进入lua所在文件夹
– make macosx
– make test
– sudo make instal
– 17.lua函数的怎么定义,lua函数可以返回几个值?
– 答:使用关键字function声明,可以返回多个值
– 18.闭合函数的定义,闭合函数的特性
– 答:闭合函数就是在一个函数中存在一个函数和一个相对的非局部变量。 函数和变量的生命周期相同,变量具有静态变量的特点
– 19.尾调用的定义,尾调用有什么好处
– 答:所谓的尾调用,就是在函数最后执行的还是一个函数,这样的函数不会有入栈的操作,会节省空间。
– 20.如何实现两个表的相加
– 答:给其中一个表添加元表,元表._add=函数,在函数中事项对应元素相加,在执行两表的加法即可
– 21.如何实现两个表相等
– 答:将两个表都设置元表,并且两个表的元表相同,元表.__eq=函数,函数中实现比较操作
– 22.__index字段有什么作用
– 答:在一个表有元表,且元表中有__index关键字的时候,查找元素
– 23.lua导入头文件的3中形式,以及他们之间的区别
– 答:loadfile 只是将指定文件的内容放入到_G中,返回_G并不执行
– dofile 每次调用都会将代码执行一遍
– require 只有在第一次调用执行代码
– 24.pcall有几个返回值,代表什么
– 答:返回两个值:true/false 函数返回值/错误信息
– 25.lua是面向对象的语言吗?lua是如何实现面向对象的?
– 答:lua不是面向对象的语言,可以模拟出相似的情形,运用函数和元表,在一个file文件中写一个表,以及这个表的相关函数,return这个表,在另一个file文件中require该文件,创建前一个文件的子项,并声明自己相关的函数,这样就继承了前一个文件的内容。
– 26.__newindex字段的作用
– 答:在一个表有元表,且元表有__newindex时,给表赋值的时候,如果有值, 则覆盖原来的值;如果没有元素,没有这个元素直接添加;有元表且 __newindex有则替换,没有不添加;如果是函数,调用函数;如果是一个表 则将元素添加到这个表里面去
– 27:写出下面的代码的输出值
– t1 = {x=1};
– t2 = {y=2};
– t3 = {z=3};
– setmetatable(t1, t2);
– setmetatable(t2, t3);
– t2.__newindex = t2; --t3.__newindex = t2
– t3.__newindex = t3; --t3.__newindex = t3
– t2.__index = t2; --t3.__index = t2
– t3.__index = t3; –t3.__index = t3
– print(t1.x)
– print(t1.y)
– print(t1.z)
– 答:1,nil,nil
– 28:写出下面的代码的输出值
– t1 = {x=1};
– t2 = {y=2};
– t3 = {z=3};
– setmetatable(t1, t2);
– setmetatable(t2, t3);
– t2.__index = t2; -- t3.__index = t2
– t3.__index = t3; -- t3.__index = t3
– t2.__newindex = t2; –t2.__newindex = t2
– t3.__newindex = t3; –t3.__newindex = t3
– print(t1.x)
– print(t1.y)
– print(t1.z)
– 答:1,2,3

你可能感兴趣的:(文章标题)