나는 화면을 가로 질러 달리는 괴물들을 가지고이 비디오 게임을하고있다. 문제는 한 지점에서 몬스터가 한 지역을 지나가고 (y 좌표 위로 올라가는) 맨 위로 돌아 가야한다는 것입니다. 하단에서 상단으로 임의의 시간 (0, 1, 2 또는 3 초) 지연된 제안을 받았습니다. 지금 당장은 아무런 휴식없이 정상에 올라갑니다. 내 문제는이 휴식을 구현하는 것입니다.스레드가없는 프로그램을 멈추기
// if(monster is below 400 on y-axis
if(sbgBackFootY[ i ] >= 400) {
// random number that determines how long it will take to go to top
int randCo = (int) (Math.random() * 3);
if(randCo == 0) {
//moves monster to top
sbgHeadX[ i ] = 200;
sbgHeadY[ i ] = 80;
sbgMouthX[ i ] = 206;
sbgMouthY[ i ] = 110;
sbgBackX[ i ] = 190;
sbgBackY[ i ] = 95;
sbgBackFootX[ i ] = 190;
sbgBackFootY[ i ] = 115;
sbgFrontFootX[ i ] = 197;
sbgFrontFootY[ i ] = 115;
sbgLeftEyeX[ i ] = 205;
sbgLeftEyeY[ i ] = 90;
sbgRightEyeX[ i ] = 215;
sbgRightEyeY[ i ] = 90;
sbgLeftEyebrowStartX[ i ] = 203;
sbgLeftEyebrowStartY[ i ] = 83;
sbgLeftEyebrowEndX[ i ] = 210;
sbgLeftEyebrowEndY[ i ] = 90;
sbgRightEyebrowStartX[ i ] = 220;
sbgRightEyebrowStartY[ i ] = 83;
sbgRightEyebrowEndX[ i ] = 215;
sbgRightEyebrowEndY[ i ] = 90;
}
if(randCo == 1) {
//loop is supposed to stall program
for(int w = 0; w <= 1000000000; w++){
SBGco[ i ]++;
}
if(SBGco[ i ] == 1000000000) {
//moves monster to top
sbgHeadX[ i ] = 200;
sbgHeadY[ i ] = 80;
sbgMouthX[ i ] = 206;
sbgMouthY[ i ] = 110;
sbgBackX[ i ] = 190;
sbgBackY[ i ] = 95;
sbgBackFootX[ i ] = 190;
sbgBackFootY[ i ] = 115;
sbgFrontFootX[ i ] = 197;
sbgFrontFootY[ i ] = 115;
sbgLeftEyeX[ i ] = 205;
sbgLeftEyeY[ i ] = 90;
sbgRightEyeX[ i ] = 215;
sbgRightEyeY[ i ] = 90;
sbgLeftEyebrowStartX[ i ] = 203;
sbgLeftEyebrowStartY[ i ] = 83;
sbgLeftEyebrowEndX[ i ] = 210;
sbgLeftEyebrowEndY[ i ] = 90;
sbgRightEyebrowStartX[ i ] = 220;
sbgRightEyebrowStartY[ i ] = 83;
sbgRightEyebrowEndX[ i ] = 215;
sbgRightEyebrowEndY[ i ] = 90;
}
}
아래 도시하지만 변수 w가 너무 빠른 방법 1000000000가되도록 컴퓨터가 너무 빨리 계산으로 I는, 이러한 루프 실속과 같은 다양한 방법을 시도했다. 이 작업을 수행하는 다른 방법은 스레드를 만들고 Thread.sleep (randCo) 또는 무언가를 사용하는 것이지만 다중 스레드를 사용하지 않으려 고합니다. 내가 할 수있는 다른 방법이 있습니까?
그가 잠을 자고 있다고 생각하지 마십시오. 내가 그를 제대로 이해한다면, 단일 스레드는 그의 모든 몬스터를 렌더링하므로 잠을 자면 모든 몬스터가 멈 춥니 다. (경계를 여행하는 몬스터와는 반대로) – Michael
@Michael 질문에 대한 두 번째 읽기에서 나는 맞아. 그는 앤드류의 해결책을 찾아야한다. – tibtof