Window Events

1 · Yousazoe · May 27, 2021, 12:49 p.m.
Memories by Mohamed Chahin 引言上一节为我们的游戏引擎创建了一个窗口,讨论了很多抽象类以及我们如何才能真正抽象出真正的窗口逻辑API,而今天我们将通过该窗口实际添加事件。窗口会随时生成事件,我们移动鼠标、按一个键、关闭窗口、调整窗口大小、单击鼠标按键……所有这些都会生成事件,事件发生在我们的窗口内,我们想创建一个事件并分发出去。现在我们实际上迫切需要的例子是关闭,现在当我们点击关闭按钮时程序什么也不会发生,只是我们单击它,而我们想正确的终止程序。所以今天我们将要实施的功能是调度所有不同的事件类型,例如按键事件、鼠标事件、窗口调整事件等等。事件回调为了能够在窗口上设置回调函数,所以在窗口内部编写的是之前在抽象窗口Window.h中的事件回调函数:一个返回void并接收事件引用的函数:using EventCallbackFn = std::fuction<void(Event&)>;在Application.h中我们声明一个称为OnEvent(Event& e)的函数:#include "Core.h"#include "Events/Eve...