美文网首页
从零开发游戏引擎系列(二)引擎入口

从零开发游戏引擎系列(二)引擎入口

作者: zaintan | 来源:发表于2021-02-14 23:13 被阅读0次

    该系列教程源自youtube的cherno的视频-GAME ENGINE series!

    视频地址: https://www.youtube.com/watch?v=vtWdgtMo1T4

    引擎源代码地址: https://github.com/TheCherno/Hazel

    主要内容简介:
    将第一节的测试代码移除,添加引擎的入口

    代码目录结构如下

    image.png

    Hazel.h

    #pragma once
    #include "Hazel/Application.h"
    

    Hazel/Core.h

    #pragma once
    #ifdef HZ_PLATFORM_WINDOWS
        #ifdef HZ_BUILD_DLL
            #define HAZEL_API __declspec(dllexport)
        #else
            #define HAZEL_API __declspec(dllimport)
        #endif // HZ_BUILD_DLL
    #else
    #error Hazel only support Windows!
    #endif // !HZ_PLATFORM_WINDOWS
    

    Hazel/Application.h

    #pragma once
    
    #include "Core.h"
    
    namespace Hazel {
        class HAZEL_API Application {
        public:
            Application();
            virtual ~Application();
            void Run();
        };
    
        //To be defined in CLIENT
        Application* CreateApplication();
    }
    

    Hazel/Application.cpp

    #include "Application.h"
    #include <cstdio>
    
    namespace Hazel {
        Application::Application() {
    
        }
    
        Application::~Application() {
    
        }
    
        void Application::Run() {
            while (true);
        }
    }
    

    Hazel/EntryPoint.h

    #pragma once
    
    #ifdef HZ_PLATFORM_WINDOWS
    
    extern Hazel::Application* Hazel::CreateApplication();
    
    int main(int argc, char** argv) {
    
        auto app = Hazel::CreateApplication();
        app->Run();
        delete app;
        return 0;
    }
    
    #endif
    

    SandboxApp.cpp

    #include <Hazel.h>
    #include <Hazel/EntryPoint.h>
    
    class Sandbox : public Hazel::Application {
    public:
        Sandbox() {
    
        }
    
        ~Sandbox() {
    
        }
    };
    
    Hazel::Application* Hazel::CreateApplication()
    {
        return new Sandbox;
    }
    

    给项目 Hazel 添加宏 :(注意每个平台(Debug/Release)都要设置)

    HZ_PLATFORM_WINDOWS

    HZ_BUILD_DLL

    配置属性 -> c/c++ -> 预处理器 -> 预处理器定义

    image.png

    同样的方式给项目 Sandbox 添加宏 :(注意每个平台(Debug/Release)都要设置)

    HZ_PLATFORM_WINDOWS

    添加头文件目录 $(SolutionDir)Hazel\src

    配置属性 -> c/c++ -> 常规 -> 附加包含目录

    image.png

    相关文章

      网友评论

          本文标题:从零开发游戏引擎系列(二)引擎入口

          本文链接:https://www.haomeiwen.com/subject/hvymxltx.html