나는 일련의 직사각형을 그리는 자바에서 뱀 프로그램을 작성 중이다. 나는 뱀 사각형이 화살표 키가 눌려진 동일한 지점에서 방향을 모두 바꿀 수 있도록 순서대로 블록의 방향 변경을 지연시키는 방법을 이해하지 못합니다. 프로그램의 나머지 부분이 계속 실행되는 동안 한 가지 방법으로 기다려야합니다. 화살표 키를 누를 때Java에서 전체 프로그램을 지연시키지 않고 단일 메서드 내에서 지연시키는 방법은 무엇입니까?
`public void changeDirection(String dir)
{
for(int i = 0; i<snakearray.size(); i++)
{
//checks to make sure youre not changing straight from l to r or u to d
if(dir.equals("r")||dir.equals("l"))
{
if(//direction of currect element is up or down)
//makes the current element of the array change to the new direction
{snakearray.set(i, snakearray.get(i).newDirection(dir));}
}
else if(dir.equals("u")||dir.equals("d"))
{
if(//current element's direction is right or left)
{snakearray.set(i, snakearray.get(i).newDirection(dir));}
}
//pause method but not game method needed here????
}
}`
제가 필요 일시 정지를 구현하는 방법이있다 (... 다운 들어 처리를 위해 D를 U)를이 방법 내 직사각형의 방향을 변경하는 트리거? thread.sleep (20) 메서드를 시도했지만 내 전체 프로그램을 일시 중지했습니다 ...
이 코드는 자체 스레드에 있어야합니다. –
이 동작을 원할 경우 다른 스레드를 만들어 사용해야합니다. 하지만 당신이 할 때까지 주 스레드를 잠을 것입니다 –
그냥 주 방법 스레드 넣어 스레드 = 새로운 스레드 (changeDirection) 다음 t.sleep (뭐든간에). –