输入绑定

输入绑定,通常指的是由外部硬件设备发起的事件,由程序捕获并进行响应的过程。

输入事件类型

  • IE_Pressed 按下事件

  • IE_Released 释放事件

  • IE_DoubleClick 双击事件

  • IE_Repeat 持续按下事件

绑定按键

IODevice& _device = IODeviceController::Instance()
    .GetIODevice("Standard");
    
_device.BindKey(EKeys::A, IOToolkit::IE_Pressed, []() {
    // 按键A被按下
});

_device.BindKey(EKeys::A, IOToolkit::IE_Released, []() {
    // 按键A被释放
});

_device.BindKey(EKeys::A, IOToolkit::IE_DoubleClick, []() {
    // 按键A双击事件
});

_device.BindKey(EKeys::A, IOToolkit::IE_Repeat, []() {
    // 按键A持续按下事件
});

绑定输入动作

IODevice& _device = IODeviceController::Instance()
	.GetIODevice("PCI2312A");

_device.BindAction("StartGame", IOToolkit::IE_Pressed, []() {
	// 开始游戏逻辑
});

_device.BindAction("PlayVideo", IOToolkit::IE_Pressed, [](FKey InKey) {
	if (InKey == EKeys::Button_10) {
		// PlayVideo("video1.mp4");
	}
	else if (InKey == EKeys::Button_11) {
		// PlayVideo("video2.mp4");
	}
	// ...
});

绑定输入动作(携带自定义参数)


class Application
{
	public:
		void RegisterEvents()
		{
			IODevice& _device = IODeviceController::Instance()
				.GetIODevice("PCI2312A");
			
			_device.BindAction("PlayVideo2", IOToolkit::IE_Pressed, 
				this, &Application::OnPlayVideo, "video1.mp4");
			
			_device.BindAction("PlayVideo2", IOToolkit::IE_Pressed, 
				this, &Application::OnPlayVideo, "video2.mp4");
		}
		
		void OnPlayVideo(const char* videoName)
		{
			//PlayVideo(videoName);
		}
}

绑定轴键

IODeviceController::Instance()
	.GetIODevice("Standard")
	.BindAxisKey(EKeys::MouseX, [](float InDeltaX) {
		// 处理鼠标移动时逻辑
	});

绑定轴输入

IODeviceController::Instance()
	.GetIODevice("Standard")
	.BindAxis("MoveHorizontal", [](float InDeltaX) {
    // player.transform.position += player.transform.left * InDeltaX;
});

最后更新于

这有帮助吗?