该系列教程源自youtube的cherno的视频-GAME ENGINE series!
视频地址: https://www.youtube.com/watch?v=vtWdgtMo1T4
引擎源代码地址: https://github.com/TheCherno/Hazel
主要内容简介:
将第一节的测试代码移除,添加引擎的入口
代码目录结构如下
image.pngHazel.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++ -> 预处理器 -> 预处理器定义
同样的方式给项目 Sandbox 添加宏 :(注意每个平台(Debug/Release)都要设置)
HZ_PLATFORM_WINDOWS
添加头文件目录 $(SolutionDir)Hazel\src
配置属性 -> c/c++ -> 常规 -> 附加包含目录
网友评论