GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - PistonDevelopers/dev_menu: In-game developer menu for Piston and gfx-rs

BranchesTags
Open more actions menu

Latest commit

 

History

105 Commits
105 Commits

Folders and files

NameName
Last commit message
Last commit date
scripts
scripts
 
 
src
src
 
 
.gitignore
.gitignore
 
 
.travis.yml
.travis.yml
 
 
Cargo.toml
Cargo.toml
 
 
LICENSE
LICENSE
 
 
README.md
README.md
 
 

Repository files navigation

dev_menu Build Status

In-game developer menu for Piston and gfx-rs

[DEPRECATED]

Documentation

Usage

A Menu instance can be intitialized to operate on some particular type, for example a "Settings" struct:

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

...

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

Menu items display in a vertical list, and the selection can be changed with the up and down arrow keys.

Items can be added to the menu with add_item. An ActionItem, when selected, executes a given closure when the spacebar or left or right arrow keys are hit. For example, it can be used to toggle a boolean setting as follows:

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
));

A SliderItem, when selected, can be used to increment or decrement a particular value while the right or left arrow keys are held down, using a pair of accessor closures to get or set the value within the settings object. It will also display the current value to the right of the label. For example:

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
));

To update and render the menu, using the Piston event loop:

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);

		...
	}
}

About

In-game developer menu for Piston and gfx-rs

Resources

Readme
MIT license
Activity
Custom properties

Stars

17 stars

Watchers

41 watching

Forks

7 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.