Rust로 게임 만들기 - 5부 - 운동
5406 단어 programmingbevytutorialrust
무브먼트 시스템
플레이어 이동을 담당하는 새 시스템을 추가하여 시작하겠습니다.
fn player_movement(
keyboard_input: Res<Input<KeyCode>>,
mut players: Query<(&Player, &mut RigidBodyVelocity)>
) {
for (player, mut velocity) in players.iter_mut() {
if keyboard_input.pressed(KeyCode::Left) {
velocity.linvel = Vec2::new(-player.speed, velocity.linvel.y).into();
}
if keyboard_input.pressed(KeyCode::Right) {
velocity.linvel = Vec2::new(player.speed, velocity.linvel.y).into();
}
}
}
이 시스템은 키보드의 왼쪽 및 오른쪽 키를 수신합니다. 이 키 중 하나를 누르면 시스템이 플레이어의 선형 속도를 x축의 + 또는 - 플레이어 속도 속성으로 설정하고 플레이어 속도의 y 구성 요소를 현재 y 속도로 설정합니다. 이렇게 하면 왼쪽이나 오른쪽을 눌러도 진행 중인 점프를 멈추는 효과가 없습니다.
시스템이 작동하려면 여전히 다음이 필요합니다.
.add_system(player_movement.system())
speed
속성을 추가하려면:struct Player {
speed: f32
}
.insert(Player { speed: 3.5 })
그 동안 나는 우리 플레이어
jump_impulse
를 7로 낮췄다.게임을 실행하면 키보드의 왼쪽 또는 오른쪽 키를 눌러 플레이어를 왼쪽 또는 오른쪽에서 이동할 수 있어야 합니다.
더 나아가
Bevy는 여러 유형의 사용자 입력 방법을 지원합니다. 우리는 키보드 이벤트를 처리하는 한 가지 방법을 배웠지만 마우스, 터치스크린 및/또는 게임패드에서도 동일한 작업을 수행할 수 있습니다.
또한 키보드의 현재 상태를 보고 사용자 입력을 처리하는 방법도 배웠습니다. 이를 수행하는 또 다른 방법이 있습니다: 이벤트를 통해. 일부 유형의 입력은 이벤트로만 제공된다는 점을 아는 것이 중요합니다.
지원되는 입력 방법 및 처리 방법에 대한 자세한 내용은 Bevy's unofficial cheat book을 참조하십시오.
카메라로 플레이어 따라가기
이제 플레이어는 이동할 수 있지만 플레이어가 화면을 벗어나면 카메라가 시야를 잃습니다. 카메라가 플레이어가 움직일 때 따라가면 좋을 것입니다. 이를 수행하는 한 가지 방법은 카메라를 플레이어의 자식으로 선언하는 것입니다.
.with_children(|parent| {
parent.spawn_bundle(new_camera_2d());
})
또한
setup
시스템에서 이전 카메라를 제거하고 setup
시스템이 비어 있으므로 제거해야 합니다.이 접근 방식은 효과가 있지만 몇 가지 주의 사항이 있습니다. 이 튜토리얼의 10부에서 더 나은 대안에 대해 배울 것입니다.
최종 코드를 사용할 수 있습니다here.
Reference
이 문제에 관하여(Rust로 게임 만들기 - 5부 - 운동), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/sbelzile/making-games-in-rust-part-5-movement-4f11텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)