cocos2d-x源码剖析-1-主框架解析

本文深入剖析cocos2d-x项目自动生成的框架,重点讲解AppDelegate类及其核心成员函数,包括initGLContextAttrs()、applicationDidFinishLaunching()、applicationDidEnterBackground()和applicationWillEnterForeground()。同时,介绍了HelloWorld类作为基础游戏场景的实现,包括createScene()、init()和CREATE_FUNC宏的作用。
摘要由CSDN通过智能技术生成

自动生成项目

在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类实现了四个私有成员函数:

  1. virtual void initGLContextAttrs();
  2. virtual bool applicationDidFinishLaunching();
  3. virtual void applicationDidEnterBackground();
  4. virtual void applicationWillEnterForeground();

initGLContextAttrs()

initGLContextAttrs函数主要用来初始化OpenGL的上下文属性,OpenGL本身就是一个状态机,其状态通常被称为OpenGL上下文(Context)。它里面保存了一系列的变量用来描述OpenGL此刻需要如何运行,比如当前窗口的大小,缓冲色彩等等。


                
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值