ich benutze android studio für die entwicklung ein spiel das ist ein snake spiel, ich benutze Surfaceview. Mein Problem ist, dass ich einen Wert bekomme, der weniger als 1 von dem minimalen Wert ist, den ich einstelle.android java leinwand oberflächenansicht, das objekt erhält einen wert, wo es weniger oder mehr als der eingestellte minimum wert
Hier ist mein Code für die Update-Methode, wo die Validierung des Schlange-Objekts die Ecke trifft und das Objekt auf die gegenüberliegende Seite zeichnen sollte.
numlockswide = 30
numblockshigh = 16
minhigh = 2
maxhigh = numblocks hohe
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();
}
}
Problem wird i alread eingestellt, dass der Minimalwert, wenn seine von links rechts Richtung ist 0, aber ich bekomme einen Wert von -1, weshalb ich das Apfelobjekt nicht essen kann, das in der Ecke/am Rand der Grenzen ist. Dies ist mein erstes Mal mit Oberflächenansicht und Leinwand, würde mir bitte jemand helfen mit diesem Fehler ...
danke sir seine behoben, ich habe das nicht bemerkt Es war meine Funktion, die falsch platziert war, ich dachte immer, dass es etwas ist, was die Sicht und die Leinwand betrifft, ... –