40个重大版本更新

使用旧的Rust 2015

0.41.0 2023年11月14日
0.39.0 2022年11月16日
0.37.0 2021年11月28日
0.36.0 2021年3月21日
0.1.0 2015年5月28日

250图形API 中排名

Download history 4/week @ 2024-03-09 1/week @ 2024-03-16 153/week @ 2024-03-30 44/week @ 2024-04-06

132 每月下载量

MIT 协议

11KB
192

dev_menu 构建状态

用于Piston和 gfx-rs 的游戏内开发者菜单

文档

用法

可以初始化一个 Menu 实例来操作某些特定类型,例如 "Settings" 结构体

pub struct Settings {
	setting_a: bool,
	setting_b: f32,
	// ... etc
}

...

let mut menu = dev_menu::Menu<Settings>::new();

菜单项以垂直列表的形式显示,可以通过上下箭头键更改选择。

可以使用 add_item 将项添加到菜单中。当选择 ActionItem 时,当按下空格键或左右箭头键时,将执行给定的闭包。例如,它可以用来切换布尔设置,如下所示

menu.add_item(dev_menu::MenuItem::action_item(
	"Toggle Setting A", // Label for the item
	Box::new(|ref mut settings| { settings.setting_a = !settings.setting_a; }) // Closure to execute
));

当选择 SliderItem 时,可以使用它来在按住左右箭头键时增加或减少特定值,使用一对访问器闭包来获取或设置设置对象中的值。它还会在标签的右侧显示当前值。例如

menu.add_item(dev_menu::MenuItem::slider_item(
	"Setting B = ", // Label for the item. Value will show to the right
	[-5.0, 5.0], // Valid range for the value
	0.01, // Value to increment / decrement by on each update, while key is held down
	Box::new(|ref settings| { settings.setting_b }), // Closure for retrieving value
	Box::new(|ref mut settings, value| { settings.setting_b = value }), // Closure for setting value
));

使用Piston事件循环更新和渲染菜单

for e in window.events() {

	// Send event to menu, with the settings object that should be accessed and/or modified
	menu.event(&e, &mut settings);

	...

	e.render(|args| {

		...

		// Draw the menu with gfx_debug_draw::DebugRenderer
		menu.draw(&settings, &mut debug_renderer);

		...
	}
}

依赖项

~9.5MB
~187K SLoC