뱀 게임 인 게임 개발을 위해 Android Studio를 사용하고 있습니다. Surfaceview를 사용하고 있습니다. 내 문제는 내가 최소 값에서 1보다 작은 값을 얻는 것입니다.android java canvas surfaceview, 개체가 값이 최소 또는 최소 값보다 작아집니다.
여기에 뱀 개체의 유효성 검사가 구석을 치고 반대편에 개체를 그려야하는 업데이트 메서드에 대한 내 코드입니다.
numlockswide = 30
numblockshigh = 16
minhigh = 높은
public void updateSnake() {
//every 100 ms or 1s the score increament
long elapse = (System.nanoTime() - startTime)/1000000;
if (elapse > speed) {
//checks if hits the border so it could come from the opposite border
//north and south
if (snakeX[0] > numblocksWide) {
snakeX[0] = 0;
} else if (snakeX[0] < 0) {
snakeX[0] = numblocksWide;
}
//east west
if(snakeY[0] > maxHigh){
snakeY[0] = minHigh;
}else if(snakeY[0] < minHigh){
snakeY[0] = maxHigh;
}
for (int i = snakeLength; i > 0; i--) {
// System.out.println("snake[i] = " + i + " bx loc " + snakeX[i] + " by loc " + snakeY[i]);
snakeX[i] = snakeX[i - 1];
snakeY[i] = snakeY[i - 1];
// System.out.println("snake[i] = " + i + " nbx loc " + snakeX[i] + " nby loc " + snakeY[i]);
}
switch (currentDirection) {
case EAST:
snakeX[0]++;
angle = 0;
break;
case WEST:
snakeX[0]--;
angle = 180;
break;
case SOUTH:
snakeY[0]++;
angle = 90;
break;
case NORTH:
snakeY[0]--;
angle = 270;
break;
}
startTime = System.nanoTime();
}
}
문제 나 설정을 벌써되는 2
maxhigh = numblocks 최소치의 좌우에서 만약 방향은 0이지만 나는 -1의 값을 얻고있다. 그래서 나는 테두리의 모서리/가장자리에있는 사과 개체를 먹을 수 없다. 이것은 처음으로 표면 뷰와 캔버스를 사용하는 사람이 누구든이 버그를 도와주세요.
고마워요, 고맙습니다. 그것이 잘못 배치 된 것은 내 기능이었는데, 나는 항상 그것이보기와 캔버스를 포함하는 것이라고 생각했다. –