10个版本 (6个破坏性更新)
0.6.1 | 2024年6月21日 |
---|---|
0.6.0 | 2024年2月28日 |
0.5.0 | 2024年2月12日 |
0.4.0 | 2023年9月29日 |
0.3.1 | 2023年3月16日 |
#135 in 游戏开发
每月476次下载
用于 2 crates
2.5MB
1.5K SLoC
一个用于在3D游戏中方便集成草的Bevy插件。
目前支持Bevy版本 0.13
。也支持Wasm构建!
不要将此项目用于严肃的项目,它仍在积极开发中。目前,该项目除了用于辅助项目或学习目的之外,尚不准备使用
使用此crate的一个酷项目是foxtrot模板。查看它!
用法
将 warbler_grass
添加为项目的依赖项
[dependencies]
warbler_grass = "0.6"
将草添加到您的游戏中
use bevy::{prelude::*, render::primitives::Aabb};
use warbler_grass::prelude::*;
fn main() {
App::new()
.add_plugins((
DefaultPlugins,
// This plugin is needed to initialize everything for the grass render pipeline
WarblersPlugin
))
.add_systems(Startup, setup_grass)
.run();
}
fn setup_grass(mut commands: Commands, asset_server: Res<AssetServer>) {
// Loading the height map from an image
let y_map_image = asset_server.load("grass_y_map.png");
// Constructing the y map struct
let y_map = YMap { y_map: y_map_image };
// Loading the density map from an image
let density_map = asset_server.load("grass_density_map.png");
// Constructing the density map
let density_map = DensityMap {
density_map,
// The density corresponds to how dense a dense area is supposed to be.
// Be careful with this parameter since the blade count grows fast.
density: 2.,
};
commands.spawn(WarblersBundle {
y_map,
density_map,
// The height of the blades
height: WarblerHeight::Uniform(2.),
// The aabb defines the area in which the chunk lives in
aabb: Aabb::from_min_max(Vec3::ZERO, Vec3::new(100., 10., 100.)),
..default()
});
}
示例
您可以在示例文件夹
中找到它们
加载草
基本示例。如果您只是想看看如何使用此crate,就不必再看了
cargo run --example load_grass
草的颜色
您不喜欢默认的草色或您的游戏有多个季节?看看您如何可以更改草的颜色
cargo run --example grass_colors
草的网格
您不喜欢默认的草网格?不用担心,您可以轻松地交换网格。注意,您可以在演示中按 TAB
键更改网格
cargo run --example grass_mesh
许多块
您想看看这个crate能做什么?运行此演示以同时加载许多块。此示例也非常适合演示网格的视锥剔除
# I'd run this demo in release mode first to see how your hardware can keep up
cargo run -r --example many_chunks
压力测试
这不是一个很好的示例。它用于限制测试crate。当然,您也可以加载它并查看会发生什么。
# I'd run this demo in release mode first to see how your hardware can keep up
cargo run -r --example stress_test
版本表
warbler_grass |
Bevy |
---|---|
0.6 |
0.13 |
0.5 |
0.12 |
0.4 |
0.11 |
贡献
如果您阅读了这部分,您可能想考虑帮助这个项目成长。我认为这个项目非常适合初学者。由于用例清晰,相对容易理解其工作原理;即高效地绘制草。不要担心,如果您是Bevy或Rust的初学者!
目前,代码可以在许多地方进行优化,许多我希望拥有的功能部分或完全缺失。您总是可以创建一个问题并询问是否需要您想做的事情。
依赖项
~39–75MB
~1.5M SLoC