저는 LibGdx를 사용하여 자바 게임을하고 있는데 도움이 필요합니다.화살표 키 우선 순위 (자바 RPG 게임)
설명 : 화살표 키에는 하나의 문제점이 있습니다. 먼저 코드가 어떻게 작동하는지 설명하겠습니다. 따라서 업데이트 방법에서 키를 눌렀는지 확인합니다. 그리고 그들이 있다면 나는 그들을 다룬다. 문제는 내 코드가 다른 코드를 확인한다는 것입니다. 첫 번째 화살표 키는 다른 모든 키보다 우선 순위가 높기 때문에 키를 누르면 먼저 호출됩니다. 예 :
public static void updateControls(){
if(Gdx.input.isKeyPressed(Input.Keys.UP){
//Make player move up...
}
if(Gdx.input.isKeyPressed(Input.Keys.DOWN){
//Make player move down...
}
if(Gdx.input.isKeyPressed(Input.Keys.LEFT){
//Make player move left...
}
if(Gdx.input.isKeyPressed(Input.Keys.RIGHT){
//Make player move right...
}
}
그런데 내 게임은 타일베이스입니다. 플레이어가 1 타일 이동을 마쳤 으면 화살표 키 입력을 다시 확인하여 어느 방향으로 가야하는지 확인합니다.
어떤 문제가 발생합니까? : 플레이어가 왼쪽, 오른쪽 또는 아래쪽으로 이동하고 해당 단추 중 하나를 누른 채 위로 누르기를 결정할 때마다. 위로 이동이 우선하며 플레이어가 처음으로 내려 갔을 때 플레이어가 위로 움직이기 시작합니다.
직접 해보지 않고 이해하기가 어렵 기 때문에이 점을 내 능력에 설명하려고했습니다. 너 자신에 결함을 시험하기 위해 나의 게임에 대한 더 많은 설명이나 링크가 필요하다면, 자유롭게 의견을 말하고 그 것을 요구할 수있다. 감사!
좋아요, 그럼 실제로 어떻게하고 싶습니까? 다른 키를 누를 때 플레이어가 같은 방향으로 계속하기를 원합니 까? – Alex
예. 하지만 이미 고쳤지만 고마워! 내가 이것을 올린 직후 나는 해결책을 찾아 냈다. – vedi0boy
해결책 : 마지막 방향을 기록한 int를 추가했습니다. 그런 다음 키를 누를 때마다 마지막 방향의 키가 계속 눌려 있는지 확인합니다. 그럴 경우, 해당 키의 코드가 다시 실행됩니다. 그것이 아니라면, 그것은 단지 중재없이 계속 될 것입니다. – vedi0boy