G
Gonzo17
Gast
Servus,
also mir geht's um folgendes. Erstmal die Situation. Ich programmiere an einem Jump'n'Run-Spiel mit und zur Kollisionserkennung habe ich jeweils eine Methode, die überprüft, ob rechts, links, oben oder unten geblockt ist. Die Methoden funktionieren jeweils gut, allerdings muss ich die ja bei der Berechnung der neuen Position mehrmals aufrufen. Einmal bewegt sich eine Figur in einem Intervall nach rechts und oben, einmal nur nach unten. Dazu müsste ich ja theoretisch eine riesige if-else-Kaskade aufbauen, was ich jetzt zum Testen auch erstmal gemacht habe, allerdings stellt sich mir da die Frage: geht das nicht einfacher?
Was mir da so vorschwebt ist eine Möglichkeit, dass man anhang zB eines Enums bestimmt, welche Methoden aufgerufen werden sollen. Das Enum hat dann natürlich so viele Felder wie meine if-else-Abfragen. Ich würde dann zB das passende Feld aus dem Enum in eine Methode weitergeben und die ruft dann alle notwendigen weiteren Methoden auf. Gibt's da ne elegante Lösung? Oder muss ich tatsächlich so hässlichen Code verwenden? (der ist ja nichtmal mehr übersichtlich, man muss ja dauernd überlegen, welches if/else man gerade behandelt)
Gruß, Gonzo
also mir geht's um folgendes. Erstmal die Situation. Ich programmiere an einem Jump'n'Run-Spiel mit und zur Kollisionserkennung habe ich jeweils eine Methode, die überprüft, ob rechts, links, oben oder unten geblockt ist. Die Methoden funktionieren jeweils gut, allerdings muss ich die ja bei der Berechnung der neuen Position mehrmals aufrufen. Einmal bewegt sich eine Figur in einem Intervall nach rechts und oben, einmal nur nach unten. Dazu müsste ich ja theoretisch eine riesige if-else-Kaskade aufbauen, was ich jetzt zum Testen auch erstmal gemacht habe, allerdings stellt sich mir da die Frage: geht das nicht einfacher?
Was mir da so vorschwebt ist eine Möglichkeit, dass man anhang zB eines Enums bestimmt, welche Methoden aufgerufen werden sollen. Das Enum hat dann natürlich so viele Felder wie meine if-else-Abfragen. Ich würde dann zB das passende Feld aus dem Enum in eine Methode weitergeben und die ruft dann alle notwendigen weiteren Methoden auf. Gibt's da ne elegante Lösung? Oder muss ich tatsächlich so hässlichen Code verwenden? (der ist ja nichtmal mehr übersichtlich, man muss ja dauernd überlegen, welches if/else man gerade behandelt)
Gruß, Gonzo