My code :
Player
commands.spawn((
SpriteSheetBundle {
sprite: TextureAtlasSprite {
index: 2,
custom_size: Some(Vec2::new(32.0 * 2.0, 48.0 * 2.0)),
anchor: Anchor::BottomCenter,
..Default::default()
},
texture_atlas: texture_atlas_handle,
..Default::default()
},
Collider::capsule_y(25.0, 10.0),
Sensor,
RigidBody::KinematicPositionBased,
KinematicCharacterController {
offset: CharacterLength::Absolute(0.0),
..default()
},
ActiveEvents::COLLISION_EVENTS,
ActiveCollisionTypes::KINEMATIC_KINEMATIC,
Player,
Speed(250.0),
PlayerAnimation {
timer: Timer::from_seconds(0.1, TimerMode::Repeating),
state: PlayerAnimationState::Idle,
},
Name::new("Player"),
));
}
Robot :
commands.spawn((
SpriteBundle {
texture: asset_server.load("ennemies/ball/ball.png"),
transform: Transform::from_xyz(-250.0, 0.0, 0.0),
sprite: Sprite {
anchor: bevy::sprite::Anchor::BottomCenter,
custom_size: Some(Vec2::new(64.0, 64.0)),
..default()
},
..default()
},
Name::from("Ball_1"),
Collider::ball(10.0),
Sensor,
RigidBody::KinematicPositionBased,
ActiveEvents::COLLISION_EVENTS,
ActiveCollisionTypes::KINEMATIC_KINEMATIC,
));