Aurora Engine 游戏引擎入门 11(为ImGui绑定事件)

这是一篇关于Aurora Engine游戏引擎的入门教程,聚焦于如何为ImGui绑定事件。教程由一位游戏引擎爱好者整理,采用前瞻性的语言技术,通过一系列小知识点串联,适合学习者跟随指导。内容包括添加OpenGL输入监听和ImGui的事件处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


简介

本序列由澳大利亚的一个游戏引擎爱好者整理制作,使用了前瞻的语言技术,
经常多次的修改制作,一个个小的知识点贯通,非常具有引导学习意义!

Bilibili站转载学习,非个人研究,鸣谢!

原作者Github
Bilibili直达链接
YouTube直达链接


#1 添加OpenGL输入监听
#2 为ImGui添加事件


#1

glfwSetCharCallback(m_Window, [](GLFWwindow* window, unsigned int keycode)
{
   
	WindowData& data = *(WindowData*)glfwGetWindowUserPointer(window);

	KeyTypedEvent event(keycode);
	data.EventCallback(event);
});

#2

// ImGuiLayer.h
#pragma once

#include "Aurora/Layer.h"

#include "Aurora/Events/ApplicationEvent.h"
#include "Aurora/Events/KeyEvent.h"
#include "Aurora/Events/MouseEvent.h"

namespace Aurora {
   

    // ImGui层 处理渲染和事件
    class AURORA_API ImGuiLayer : public Layer
    {
   
    public:
        ImGuiLayer();
        ~ImGuiLayer();

        // 当层被创建的时候
        void OnAttach();
        // 当层被销毁的时候
        void OnDetach();
        void OnUpdate();
        void OnEvent(Event& event);
    private:
        // 定义UI需要的事件,这里的事件只会作用到UI
        // 游戏的事件流程 硬件->系统->OpenGL->Game Engine->ImGui->User
        bool OnMouseButtonPressedEvent(MouseButtonPressedEvent& e);
        bool OnMouseButtonReleasedEvent(MouseButtonReleasedEvent& e);
        bool OnMouseMovedEvent(MouseMovedEvent& e);
        bool OnMouseScrolledEvent(MouseScrolledEvent& e);
        bool OnKeyPressedEvent(KeyPressedEvent& e);
        bool OnKeyReleasedEvent(KeyReleasedEvent& e);
        bool OnKeyTypedEvent(KeyTypedEvent& e);
        bool OnWindowResizeEvent(WindowResizeEvent& e);
    private:
        float m_Time = 0.0f;
    };
}


// ImGuiLayer.cpp
#include "aopch.h"
#include "ImGuiLayer.h"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值