• 3.cocos代码入口


     模拟代码进入过程:

    • main.cpp
       1 #include <iostream>
       2 #include "AppDelegate.h"
       3 #include "CCApplication.h"
       4 #include "CCApplicationProtocol.h"
       5 using namespace std;
       6 
       7 int main()
       8 {
       9     AppDelegate app;
      10 
      11     return CCApplication::sharedApplication()->run();
      12 }
    • AppDelegate.h
       1 #pragma once
       2 #include "CCApplication.h"
       3 class AppDelegate :
       4     public CCApplication
       5 {
       6 public:
       7     AppDelegate();
       8     virtual ~AppDelegate();
       9 
      10     virtual bool applicationDidFinishLaunching();//子类实现了接口
      11 };
    • AppDelegate.cpp
      #include "AppDelegate.h"
      #include <Windows.h>
      
      
      AppDelegate::AppDelegate()
      {
      }
      
      
      AppDelegate::~AppDelegate()
      {
      }
      //真正的入口
      bool AppDelegate::applicationDidFinishLaunching() { MessageBoxA(0, "游戏开始", "提示", 1); return false; }
    • CCApplication.h
       1 #pragma once
       2 #include "CCApplicationProtocol.h"
       3 
       4 class CCApplication :
       5     public CCApplicationProtocol
       6 {
       7 public:
       8     CCApplication();
       9     virtual ~CCApplication();
      10 
      11     int run();
      12 
      13     static CCApplication *sharedApplication();
      14     static CCApplication *sm_pSharedApplication;
      15 };
    • CCApplication.cpp
       1 #include "CCApplication.h"
       2 #include "stddef.h"
       3 
       4 CCApplication * CCApplication::sm_pSharedApplication = NULL;
       5 
       6 CCApplication::CCApplication()
       7 {
       8     sm_pSharedApplication = this;//注意这个this是子类AppDelegate传过来的
       9 }
      10 
      11 
      12 CCApplication::~CCApplication()
      13 {
      14 }
      15 //run调用父类的applicationDidFinishLaunching()方法,父类的方法在子类中实现
      16 int CCApplication::run()
      17 {
      18     applicationDidFinishLaunching();
      19     return 0;
      20 }
      21 
      22 CCApplication * CCApplication::sharedApplication()
      23 {
      24     if(sm_pSharedApplication != NULL)
      25         return sm_pSharedApplication;
      26 }
    • CCApplicationProtocol.h
      1 #pragma once
      2 class CCApplicationProtocol
      3 {
      4 public:
      5     CCApplicationProtocol();
      6     virtual ~CCApplicationProtocol();
      7 
      8     virtual bool applicationDidFinishLaunching() = 0;
      9 };
    • CCApplicationProtocol.cpp
      #include "CCApplicationProtocol.h"
      
      
      
      CCApplicationProtocol::CCApplicationProtocol()
      {
      }
      
      
      CCApplicationProtocol::~CCApplicationProtocol()
      {
      }

    运行截图:

  • 相关阅读:
    js类数组
    内存中,外部碎片与内部碎片
    检测js随机函数是否随机
    Vue3 父子组件通信
    Promise的几个重要api
    npm知识总结
    vue中使用防抖函数
    absolute元素水平居中
    vue3 使用 data、computed、methods
    空白字符
  • 原文地址:https://www.cnblogs.com/xiaochi/p/8337074.html
Copyright © 2020-2023  润新知