综述
- 最近,在面试Cocos2dx相关的岗位,从网上收集了一些有用的提问和思考点,先把问题和复习点记下来,可能会有用。
C++
- C++的编译,链接的过程,会在游戏发布打包时遇到很多的问题,至少要能会Cocos Studio,Android Studio等一些工具的打包。
- C++的面向对象编程思想,如多态,重载,封装继承等的重要思想和实现,区别。尤其是多态,动态绑定等。
- C++的函数指针思想,函数指针的作用,Cocos2dx许多的事件机制就有用到C++函数指针。
- C++中如何进行的垃圾回收,要知道垃圾回收的具体实现方法,讲出引用计数的原理。
- C++是如何实现模版的,函数模版和类模版的主要区别是什么。
- 能熟练使用C++11中常用的一些新特性。
- C/C++中的基础的问题,如指针的四个要素,引用的使用,重载,泛型编程,虚函数,STL中的容器,算法和迭代器使用,基本的手撸排序等等。
其实最推荐还是去过一遍C++Primer(第5版),过一遍还快的,如果你有一定的基础,每天看20页估计就差不多了,半个月应该就有所成,快餐式的“背”题目还是理解记忆来的稳固,万一出现了题目的变种也能反应过来。
Lua
Lua比C++的开发效率高上不少,但是如果你只愿用Lua和python,还是会有很多的麻烦的,听说C++用的少,会被面试官鄙视。。。因为说明你Cocos底层的代码看的少,可能只会写逻辑,Cocos源码里面也有不少有缺陷的,Lua只是重新对C的接口封装了一遍。
- Lua的特性有哪些
- Lua的数据类型有哪些
- 动态更新,热更新怎么做到实现
- require与dofile的区别
local value = {"yoyo", yoyo = "yoyou"};print(value[value[1]])
print(false == nil)
print(false or nil == true)
print(nil and false == true)
string.sub("123456",2,-2)
以上的输出结果是什么?最好花两天时了解Lua,有个大概就行。菜鸟教程就行。
Cocos2dx
Cocos2dx的问题网上搜有很多,重复的就不提太多了。
- cocos2dx引擎的几大组件
- cocos2dx几个常用的类
- cocos2dx事件分发系统,内存管理的实现
- 添加按钮,实现触摸跳转功能的全过程
- 两个重叠的物体,如何正确触发触摸事件
- onTouchesBegin函数的返回值意义
- 游戏编译成apk的大概过程,mk文件的作用
- 怎么保存用户数据,复杂数据怎么办,说说逻辑实现
- 如何实现游戏与后台间的交互
- cocos2dx的基础对象有哪些
- cocos2dx的相关工具有哪些使用过
- cocos2dx的屏幕适配方案,cocos2dx中使用的设计模式
- cocos2dx优化的方法,如何减少内存开销
- cocos2dx图形渲染的机制
- cocos2dx执行流程
- cocos2dx场景切换的内存处理过程
- cocos2dx的跨平台实现
- cocos2dx最新版本的新特性(3.0)
- cache机制原理
参考资料
《我所理解的Cocos2d-x》 作者:秦春林 出版社:电子工业出版社
《Cocos2d-x 3.x》游戏开发之旅 作者:钟迪龙 出版社:电子工业出版社