自动生成项目
在vs2017环境下新建项目后,可以在解决资源管理器看到四个文件夹,如下图所示。我们主要关注第一个和第二个文件夹。第一个文件夹展开后是cocs2d为我们自动生成的项目文件,第二个文件夹是cocs2d-x的源码目录,当然这些都是源码路径的链接。现在来看看第一个自动生成的项目文件。
src目录下存储的是头文件以及其实现,在win32文件里面放着项目的主函数。
AppDelegate类
AppDelegate.h
#ifndef _APP_DELEGATE_H_
#define _APP_DELEGATE_H_
#include "cocos2d.h"
class AppDelegate : private cocos2d::Application
{
public:
AppDelegate();
virtual ~AppDelegate();
virtual void initGLContextAttrs();
virtual bool applicationDidFinishLaunching();
virtual void applicationDidEnterBackground();
virtual void applicationWillEnterForeground();
};
#endif
首先可以看出AppDelegate类私有继承了cocos2d::Application类,先不管cocos2d::Application类是干什么的,私有继承的意思是其基类的公有方法将成为派生类的私有方法,派生类不继承基类的接口。
AppDelegate类实现了四个私有成员函数:
- virtual void initGLContextAttrs();
- virtual bool applicationDidFinishLaunching();
- virtual void applicationDidEnterBackground();
- virtual void applicationWillEnterForeground();
initGLContextAttrs()
initGLContextAttrs函数主要用来初始化OpenGL的上下文属性,OpenGL本身就是一个状态机,其状态通常被称为OpenGL上下文(Context)。它里面保存了一系列的变量用来描述OpenGL此刻需要如何运行,比如当前窗口的大小,缓冲色彩等等。