132 个破坏性版本
使用旧的 Rust 2015
0.132.0 | 2024 年 5 月 21 日 |
---|---|
0.131.0 | 2023 年 11 月 14 日 |
0.130.0 | 2023 年 9 月 26 日 |
0.128.0 | 2023 年 2 月 25 日 |
0.12.0 | 2015 年 7 月 31 日 |
#1728 在 游戏开发
12,701 每月下载量
在 少于 70 个工具箱中使用
25KB
306 行
piston_window
为 Piston 游戏引擎提供的官方便利窗口包装器
注意!如果您是第一次访问 Piston,请从这里开始。
Piston-Window 仅用于一个目的:便利。
- 导出编写 2D 交互应用程序所需的一切
.draw_2d
用于绘制 2D,以及.draw_3d
用于绘制 3D- 使用 Gfx 与 Piston 生态系统中的 3D 库一起工作
extern crate piston_window;
use piston_window::*;
fn main() {
let mut window: PistonWindow = WindowSettings::new("Hello Piston!", (640, 480))
.exit_on_esc(true)
.build()
.unwrap_or_else(|e| { panic!("Failed to build PistonWindow: {}", e) });
while let Some(e) = window.next() {
window.draw_2d(&e, |_c, g, _d| {
clear([0.5, 1.0, 0.5, 1.0], g);
});
}
}
PistonWindow
默认使用 Glutin 作为窗口后端,但您可以通过更改类型参数切换到另一个后端,例如 SDL2 或 GLFW
let mut window: PistonWindow<Sdl2Window> = WindowSettings::new("Hello Piston!", [640, 480])
.exit_on_esc(true).build().unwrap();
PistonWindow
实现 AdvancedWindow
、Window
和 EventLoop
。支持嵌套游戏循环,因此您可以在一个循环内包含另一个循环。
while let Some(e) = window.next() {
if let Some(button) = e.press_args() {
// Intro.
while let Some(e) = window.next() {
...
}
}
}
有想法或反馈?在这里打开一个问题。
依赖关系图
依赖项
~5–19MB
~222K SLoC