2 Commits

Author SHA1 Message Date
036f77d510 longer rumble 2025-05-25 00:05:12 +02:00
b85ce27b2a gamepad rumbling PoC 2025-05-24 22:19:19 +02:00

View File

@@ -5,9 +5,13 @@ use crate::{
tb_entities::EnemySpawn, utils::sprite_3d_animation::AnimationTimer,
};
use avian3d::prelude::*;
use bevy::{pbr::NotShadowCaster, prelude::*};
use bevy::{
input::gamepad::{GamepadRumbleIntensity, GamepadRumbleRequest},
pbr::NotShadowCaster,
prelude::*,
};
use bevy_sprite3d::{Sprite3dBuilder, Sprite3dParams};
use std::f32::consts::PI;
use std::{f32::consts::PI, time::Duration};
#[derive(Component)]
struct GunProjectile {
@@ -81,11 +85,21 @@ fn on_trigger_gun(
query_transform: Query<&Transform>,
time: Res<Time>,
mut gizmo_assets: ResMut<Assets<GizmoAsset>>,
gamepads: Query<(Entity, &Gamepad)>,
mut rumble_requests: EventWriter<GamepadRumbleRequest>,
) {
let state = trigger.0;
commands.trigger(PlaySound::Gun);
for (e, _) in gamepads.iter() {
rumble_requests.write(GamepadRumbleRequest::Add {
gamepad: e,
duration: Duration::from_secs_f32(0.5),
intensity: GamepadRumbleIntensity::MAX,
});
}
let rotation = if let Some(t) = state
.target
.and_then(|target| query_transform.get(target).ok())