KPlugin Module – 插件模块 / 自定义插件
背景: 为了增加可玩性 给KHistory开发一个插件模快KPlugin, 让更多的人能根据自己的使用环境和需求定制/开发按键可视化插件
KPlugin 是KHistory的插件模块, 为其提供基础的插件功能和插件的扩展能力
一、功能特性
二、使用说明
在KHistory的控制模块, 用户可以通过Next按钮或插件的下拉菜单中选择合适的插件, 如下图
三、插件示例
Plugin Base – Keyboard – 基础键盘插件
Plugin Base – Gamepad – 基础手柄插件
Plugin Base – Keyboard Fighting Game – 键盘格斗游戏插件
Plugin Base – Gamepad – Fighting Game – 2468 – 手柄格斗游戏2468插件
四、插件开发/扩展
KPlugin的扩展和开发是极其容易的
通过PluginBase提供的标准&统一的接口和自动注册机制, 极大的简化了插件的开发
不需要 插件开发者 了解C++/imgui等知识, 只需具备程序的编译能力即可轻松开发一个自己的 按键可视化插件
1.创建插件文件
在kplugin/auto-register目录创建以.kplugin.hpp后缀的插件文件(或者直接复制HelloWorld.kplugin.hpp并重命名). 文件名的格式如下:
所以HelloWorld插件对应的文件名就是 HelloWorld.kplugin.hpp
注意: 这个插件名, 也是后面插件的class名, 他们需要保持一致
2.继承插件基础接口
继承PluginBase并通过_mPluginName对插件进行命名
实现keyLayoutImpl布局接口,这样就完成了一个最小插件的开发, 但它的布局里并不显示任何东西
3.实现按键布局
keyLayoutImpl 的layoutWidth, layoutHeight 参数表示可布局区域布局/画布的 宽和高, 示意图如下:
我们可以根据这个信息, 去设计按键在可布局区域的位置 如下将显示一个空格键:
_drawKey绘制按键 – 参数说明
4.自定义按键颜色(可选) – 实现keyColorTableRemap
这是个可选的功能, 如下就是就是给按键颜色表中空格键配置为红色
根据需求可在这个函数中对多个按键的颜色进行 配置/自定义
格式:_mkeyColorTable[KeyCode] = { R, G, B, T }; 其中 0.0f <= R/G/B/T <= 1.0f
5.自定义按键名(可选) – 实现keyNameTableRemap
同上这也是个可选的功能, 如下是给空格键重新命名为Hello World!
格式:_mkeyNameTable[KeyCode] = "KeyCode::Key's KeyName"; 其中 0.0f << R/G/B/T << 1.0f
6.xmake重新构建项目, 自动完成插件注册
需要有xmake环境
五、贡献与更多有意思的插件
欢迎大家把有意思的插件晒到这个讨论中 – KPlugin – 有意思的插件讨论
六、相关链接
未经允许不得转载:岩猫星空网 » KHistory: KPlugin 可视化插件模块 / 自定义插件