3个版本 (破坏性更新)
0.3.0 | 2024年7月13日 |
---|---|
0.2.0 | 2024年2月23日 |
0.1.0 | 2023年11月18日 |
#1413 in 游戏开发
每月216次下载
36KB
172 行
bevy_trauma_shake
使用三行代码为您的2D Bevy游戏添加摄像机摇晃。
目标
- 无需配置
- 合理的默认值
- 内置电池(默认噪声)
- 与bevy_pancam兼容
使用方法
添加插件
app.add_plugins(TraumaPlugin);
只需将组件添加到您的摄像机中
commands.spawn((Camera2dBundle::default(), Shake::default()));
使其摇晃
fn shake(mut shake: Query<&mut Shake>, keys: Res<ButtonInput<KeyCode>>) {
if keys.just_pressed(KeyCode::Space) {
shake.single_mut().add_trauma(0.2);
}
}
还有一个方便的系统参数,用于将创伤应用于所有 Shake
fn shake(mut shake: Shakes, keys: Res<ButtonInput<KeyCode>>) {
if keys.just_pressed(KeyCode::Space) {
shakes.add_trauma(0.2);
}
}
如果您喜欢事件,还有一个事件
fn shake(mut trauma: EventWriter<TraumaEvent>, keys: Res<ButtonInput<KeyCode>>) {
if keys.just_pressed(KeyCode::Space) {
trauma.send(0.2.into());
}
}
还有一个命令
fn shake(mut commands: Commands, keys: Res<ButtonInput<KeyCode>>) {
if keys.just_pressed(KeyCode::Space) {
info!("Adding small trauma");
commands.add_trauma(0.2);
}
}
也许我有点过于夸张,我应该去掉其中的一种方式,无论如何,它们可以通过功能切换:system_param
、events
、commands
。
可选配置
可选地添加 ShakeSettings
,如果您对默认值不满意。
commands.spawn((
Name::new("Camera"),
Camera2dBundle::default(),
Shake::default(),
ShakeSettings {
amplitude: 200.,
trauma_power: 3.,
decay_per_second: 0.3,
frequency: 4.,
octaves: 2,
},
PanCam::default(),
));
Bevy版本支持
main
分支针对最新的Bevy版本。
bevy | bevy_trauma_shake |
---|---|
0.14 | 0.3, main |
0.13 | 0.2 |
0.12 | 0.1 |
许可
bevy_trauma_shake
可以选择以下任一许可
- MIT许可(./LICENSE-MIT 或 http://opensource.org/licenses/MIT)
- Apache许可,版本2.0(./LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
任您选择。
感谢
- https://www.youtube.com/watch?v=tu-Qe66AvtY
bevy_camera_shake
:2D和3D摇晃以及更多配置选项。我大量使用了这个作为参考,但我想有一个更简单的API。
贡献
欢迎PR!
依赖项
~34–70MB
~1M SLoC