IMGUI二级菜单
本帖最后由 a13799218151 于 2020-11-8 17:09 编辑## 菜单预览
## 菜单控制
通过 ↑ ↓ 控制 菜单上下移动
通过 ← → 控制 菜单展开,缩进或者是功能的开和关。
## 修改功能
项目的结构
项目中有一个config.json文件夹,程序每一次启动的时候都会读取和解析这个文件夹,并根据里面的数据解析成可视的菜单结构。
### config.json 数据结构
```
{
"title": "IMGUI分级菜单DEMO",
"items": [
{
"title": "透视设置",
"resultCode": 100,
"secondItems": [
{
"title": "方框透视",
"resultCode": 101,
"status": []
},
{
"title": "方框类型",
"resultCode": 102,
"status": [
"2D",
"3D"
]
},
{
"title": "显示血量",
"resultCode": 103,
"status": []
}
]
},
{
"title": "自瞄设置",
"resultCode": 200,
"secondItems": [
{
"title": "自动瞄准",
"resultCode": 201,
"status": []
},
{
"title": "自瞄灵敏",
"resultCode": 202,
"status": [
"0.05",
"0.10",
"0.15",
"0.20",
"0.25",
"0.30",
"0.35",
"0.40",
"0.45",
"0.50",
"0.55",
"0.60",
"0.65",
"0.70",
"0.75",
"0.80",
"0.85",
"0.90",
"0.95",
"1.00"
]
},
{
"title": "自瞄范围",
"resultCode": 205,
"status": [
"60",
"120",
"180",
"240",
"300",
"360"
]
},
{
"title": "自瞄位置",
"resultCode": 206,
"status": [
"头部",
"胸部",
"裆部"
]
}
]
},
{
"title": "其他设置",
"resultCode": 0,
"secondItems": [
{
"title": "安全退出",
"resultCode": 1,
"status": []
}
]
}
]
}
```’
items里面的节点是一级菜单,
secondItems里面的节点是二级菜单。
一级菜单的相关字段
|字段 | 描述 |
| ------------- |:-------------:|
| title | 功能名称 |
| resultCode | 回调码 |
| secondItems |二级菜单 |
二级菜单的相关字段
| 字段 | 描述 |
| ------------- |:-------------:|
| title | 功能名称 |
| resultCode | 回调码 |
| status |功能状态 |
## 回调事件
功能的开和关必然会产生一个回调事件.我们前面通过设置resultCode来辨别是哪个功能产生的事件。
下面我们来设置回调事件。
MenuManger.cpp里面有一个menuStatusChangedListener回调函数,我们在里面设置回调事件。
```
//菜单回调函数
void menuStatusChangedListener(int resultCode, bool isOpen, std::string title, std::string statusTitle) {
switch (resultCode) {
case 0:
if (isOpen)
{
std::cout << "透视设置 打开" << std::endl;
}
else {
std::cout << "透视设置 关闭" << std::endl;
}
break;
case 9:
if (isOpen)
{
std::cout << "自动瞄准 打开" << std::endl;
}
else {
std::cout << "自动瞄准 关闭" << std::endl;
}
break;
break;
case 12:
if (isOpen)
{
std::cout << "自动热键 打开 按键:" << statusTitle << std::endl;
}
else {
std::cout << "自动热键 关闭" << std::endl;
}
break;
case 13:
if (isOpen)
{
std::cout << "自瞄范围 打开 范围:"<< statusTitle << std::endl;
}
else {
std::cout << "自瞄范围 关闭" << std::endl;
}
break;
case 15:
if (isOpen)
{
std::cout << "辅助准心 打开" << std::endl;
}
else {
std::cout << "辅助准心 关闭" << std::endl;
}
break;
break;
}
}
```
## 运行环境
运行环境就是imgui demo运行的环境。
本机环境如下:**Direct X && VS Studio 2019**
## 下载链接
因为项目有20多兆 上传不了我放在百度网盘里了。
Fasy丶逝言 发表于 2020-2-16 20:19
我想问一下楼主,绘制透视D3D和IMGUI哪个比较好
当然是IMGUI好,IMGUI很方便 本帖最后由 a13799218151 于 2020-2-16 19:51 编辑
希望大家支持一下 第一次发帖.... 我想问一下楼主,绘制透视D3D和IMGUI哪个比较好
强。。。。。。。。。。。。
有易语言的吗。。。。。。。。。。 383235464 发表于 2020-2-17 13:36
有易语言的吗。。。。。。。。。。
小兄弟,易语言我不懂欸 强。。。。。。。。。。。。 弓虽。。。。。点赞。。。。 现在还能用吗
页:
[1]
2