Bewegung des Pacman
Parameter public void dreheNachRechts () public void bewegeNach (int x, int y) Bei manchen Methoden ist ohne weitere Angaben klar, was sie tun sollen. Zum Beispiel bewirkt dreheNachRechts (), dass der Vielfraß sich um 90° nach rechts dreht. Andere Methoden hingegen benötigen zusätzliche Informationen. Zum Beispiel muss bewegeNach () wissen, auf welchem Levelfeld die Bewegung enden soll. Die passenden Koordinaten werden der Methode als Parameter übergeben.
Schritt auf ein Nachbarfeld (posX | posY - 1) N (posX - 1 | posY) (posX | posY) (posX + 1 | posY) W O S (posX | posY + 1)
Die Methode gehe () public void gehe () { switch (blickrichtung) case 'N': bewegeNach (positionX, positionY – 1); break; case 'W': bewegeNach (positionX - 1, positionY); break; case 'S': bewegeNach (positionX, positionY + 1); break; case 'O': bewegeNach (positionX + 1, positionY); break; } Je nach blickrichtung werden die Koordinaten des neuen Levelfeldes ausgerechnet und der Vielfraß dorthin bewegt.
Methode geheRueckwaerts () public void geheRueckwaerts () { switch (blickrichtung) case 'N': bewegeNach (positionX, positionY + 1); break; case 'W': bewegeNach (positionX + 1, positionY); break; case 'S': bewegeNach (positionX, positionY - 1); break; case 'O': bewegeNach (positionX - 1, positionY); break; } Gegenüber vorher werden die Plus- und Minuszeichen beim Umrechnen der Koordinaten vertauscht.
Methode geheInnerhalb () Statt wie in der Methode gehe () case 'O': bewegeNach (positionX + 1, positionY); break; steht nun in der Methode geheInnerhalb () case 'O': if (positionX * 100 < Leinwand.gibLeinwand ().gibBreite ()) { bewegeNach (positionX + 1, positionY); } else bewegeNach (1, positionY); break; Der Vielfrass bewegt sich damit nach rechts, sofern er noch nicht den rechten Rand erreicht hat. Andernfalls wird die x-Koordinate auf 1 gesetzt und der Vielfraß beginnt wieder auf der linken Seite.