Spiele-App „Reactions“ – Teil 7: Endlich zocken

Spiele-App „Reactions“ – Teil 7: Endlich zocken

Beim letzten Mal gab es eine kleine Hausaufgabe: Es ging darum die letzten 3 Methoden zu implementieren, so dass wir auch den 2-Spieler-Modus abschließen und endlich zocken können.

Hier zeige ich euch wie das geht.

1. Methode: onButton1Click

Die onButton1Click-Methode wird aufgerufen, wenn Spieler 1 auf seinen Button klickt. Wenn er das macht, sollten wir dafür sorgen, dass Spieler 2 nicht mehr auf seinen Button klicken kann. Denn nur der Spieler, der am schnellsten war, soll den Punkt bekommen. Daher rufen wir eine Methode auf, die wir disableButtons nennen. Wir deaktivieren am Besten gleich für beide Spieler die Buttons. So schließen wir auch aus, dass der Button doppelt geklickt wird.

So sieht disableButtons aus. Wir entfernen einfach die beiden OnClickListener, in dem wir sie „null“ setzen.

Dann müssen wir prüfen, ob der Nutzer im richtigen Moment auf den Button geklickt hat. Dazu fragen wir den ColorShuffler, ob die aktuelle Kombination aus Farbe des Buttons und Name der Farbe übereinstimmt. Ist das der Fall, geben wir dem Spieler einen Punkt. Ist das nicht der Fall, setzen wir seine Punktzahl auf 0. Anschließend aktualisieren wir die TextView mit dem Punktestand, damit die Änderung auch angezeigt wird.

So sieht updateScore1 aus. Wichtig ist hierbei, dass wir die ganze Zahl des Punktestands in eine Zeichenkette (String) umwandeln, bevor wir es als Text auf die TextView setzen.

Die ganze onButton1Click-Methode sieht dann so aus:

2. Methode: onButton2Click

Hier machen wir das gleiche wie in onButton1Click, nur eben für den 2. Spieler.

Wenn du möchtest, kannst du auch mal eine kürzere Schreibweise für das if-else ausprobieren, denn das können wir auch mir nur einer Zeile formulieren. Diese Schreibweise nennt sich „Ternärer Operator“.

Denk daran, auch eine updateScore2 Methode zu erstellen.

3. Methode: restartGame

Diese Methode wird aufgerufen, wenn man am Ende des Spiels im Dialog auf den „Nochmal“-Button klickt. Es sollen dabei die Spielstände zurück auf 0 gesetzt werden, außerdem soll das Spiel von vorne beginnen. Also machen wir das.

DualPlayerActivity auf der Startseite anbinden

Im Prinzip sind wir fertig. Im Video ist mir noch aufgefallen, dass wir die DualPlayerActivity noch nicht aufrufen, wenn man den 2-Spieler-Button auf der Startseite anklickt. Das müssen wir noch einbauen.

Dazu öffnen wir die MainActivity und erstellen einen OnClickListener für den 2-Spieler-Button:

dualPlayerButton.setOnClickListener(view -> onDualPlayerButtonClick());

Und dann schreiben wir die onDualPlayerButtonClick-Methode, die genauso funktionieren soll wie die onSinglePlayerButtonClick-Methode, nur dass eben die Activity für den 2-Spieler-Modus gestartet werden soll.

Und jetzt: Viel Spaß beim Zocken!

Aber Achtung: In Corona-Zeiten auch beim Zocken immer 1,50 Meter Abstand halten. Lasst euch was einfallen. 😉

Quellcode herunterladen

Wenn du möchtest, kannst du dir den kompletten Quellcode der App herunterladen. Das kann dir helfen, falls du beim Nachbauen nicht weiterkommst. Klicke dazu hier.