[code=Java] if(npx % Tile.SIZE != 0) {
//if links dann wird ein Tile von dem abgezogen um das Tile davor zu kontrollieren
if(factorX==-1) {
tileX = (int) (npx % Tile.SIZE);
tileX--;
}
//if rechts bei rechts wird das tile rechts daneben überprüft
if(factorX==1) {
tileX = (int) (npx % Tile.SIZE);
tileX++;
}
} else {
tileX = (int) (npx / Tile.SIZE);
}[/code]
Wie groß ist der Spieler? Wenn der Spieler hier kleiner als eine Tile.SIZE ist, dann ist deine Annahme falsch, dass das Tile daneben überprüft werden muss.
Ansonsten scheint das wohl recht gut. Deine Ausgabe mit anzugeben wäre hilfreich (zusammen mit Spielerposition und factor vllt).
Ist es denn so, dass der Spieler, oder irgendeine andere Kreatur für die man diese Methode recyclen könnte, jemals größer wird ein Tile? Dann würde meine Variante nämlich auch super und eifach funktionieren
Insbesondere braucht man auch nicht unbedingt den Levelrand checken, weil meist will man das Level ja eh umranden.