Woche #2 – Ganz okay, denke ich …

9.1.23 – 15.1.23 (Mo-So) // freier Tag: Fr // Gesamtzeit: 3 Stunden, 35 Minuten // Ø pro Tag: 31 Minuten

Die zweite Woche ist geschafft und ich habe dabei etwas gemischte Gefühle. Einerseits bin ich froh über den bisher gemachten Fortschritt. Andererseits habe ich deutlich weniger geübt als in der Anfangswoche. Die durchschnittliche Zeit, die ich am Tag mit Üben verbracht habe, hat sich von 43 Minuten auf 31 Minuten reduziert. Trotzdem bin ich froh, dass ich es geschafft habe, bis auf den üblichen freien Tag an jedem Tag etwas zu tun. Das war an ein, zwei Abenden nicht ganz leicht.

Heute hätte ich die Lektion fast ausfallen lassen. Erstens, weil ich müde bin. Und Zweitens, weil ich ja auch noch diesen Text hier schreiben wollte und das in Verbindung von Ersterem zunächst nach einem Entweder-Oder aussah. Bin aber froh, dass ich mich noch aufraffen konnten, eine knappe halbe Stunde zu lernen und hier jetzt trotzdem noch den Text tippe.

Aber was habe ich eigentlich gelernt?

Zunächst ging es um die beiden Arten von Schleifen: die while- und die for-Schleife. Die kannte ich zum Glück noch aus meinen paar Programmierausflügen in der Vergangenheit, so dass ich sie einigermaßen verstanden habe. Wobei mir die for-Schleife aus irgendeinem Grund immer etwas abstrakter und schwerer verständlich erscheint, als die while-Schleife. Leider sollte man for-Schleifen grundsätzlich bevorzugen, da bei den while-Schleifen die Gefahr einer Endlos-Schleife und damit eines Programm-Crashes besteht. Und das wollen wir natürlich nicht. For-Schleifen scheinen offenbar zu prüfen, wie oft sie etwas machen müssen und führen die Befehle erst danach aus.

Weiter ging es mit Arrays. Sehr wichtig! Arrays sind Listen und somit werden sind quasi ständig gebraucht: für Items im Inventar, aber auch für Dinge wie ein Wegpfad, der aus mehreren Feldern besteht). Mit den Schleifen aus der vorangegangen Lektion, kann ein Array mit recht wenig Code „abgearbeitet“ werden. Die Schleife greift in ihrer ersten Runde also zunächst auf den ersten Listeneintrag zu, in ihrer zweiten Runde auf den zweiten Listeneintrag usw.

Die weitere Lektion hat die Sache dann noch weiter vertieft. Dort ging es Darum mit Schleifen den Array-Inhalt anzuzeigen (z.B. was ist im Inventar), aber auch im Array-Inhalte zu löschen oder hinzuzufügen – entweder vom Anfang oder Ende des Arrays oder an einem gewissen Punkt dazwischen (z.B. letzter Eintrag minus 5). Des weiteren kamen hier dann Dictionaries zum Einsatz, die wohl bald noch wichtiger werden. Dictionaries verknüpfen einen „Key“ mit einem Wert (z.B. der Item-Name wird mit der Anzahl der vorhandenen Items verknüpft).

Damit waren die Lektionen aus der GDQuest-Lern-App auch abgeschlossen und es ging weiter mit der ersten Lektion, direkt in Godot!

Dort ging es darum, ein Raumschiff steuern und boosten zu können. Die Lektion war unterteilt in vier Kapitel mit Übungen. Zunächst habe ich etwas über die Aufteilung in Godot gelernt. Also wo gebe ich überhaupt den Code ein etc. Für die Raumschiff-Übung musste zunächst programmiert werden, was passieren soll, wenn der/die Spieler:in eine Taste drückt: also dass das Raumschiff in entsprechende Richtung fliegt. Zudem sollte das Raumschiff mit Betätigen der Leertaste aber auch einen Boost spendiert bekommen (= Erhöhung des Maximalspeeds). Da dieser Maximalspeed aber natürlich auch wieder aufhören soll, kommt ein Signal zum Einsatz.

Signale sind in Godot offenbar sehr wichtig und sehr häufig. Die Signale werden in einem eigenen Node in Godot eingetragen, der dann mit dem Node, in dem der Code steht, verknüpft wird. Hier wurde also ein Timer genommen, der nach Ablauf einer gewissen Zeit ein Signal sendet, dass er abgelaufen ist. Im Code schreibt man dann, was passieren soll, wenn dieses Signal kommt (= Speed wieder normalisieren).

Zu guter Letzt, das war heute, habe ich noch angepasst, dass das Raumschiff smoother fliegt. Das erfolgt durch zwei, drei neue Variablen im Code, wo ich die Mathematik dahinter aber noch nicht ganz verstanden habe (was warum subtrahiert oder multipliziert wird). Dafür ist mein Hirn heute einfach nicht mehr zu gebrauchen. Aber ich bin trotzdem froh, mich nochmal hingesetzt zu haben.

Fazit

Insgesamt also wieder viel gelernt. Aber die Lernkurve wird etwas steiler. Nicht viel, aber ein bisschen, finde ich. Und ein, zwei Dinge muss ich mir einfach nochmal in Ruhe und ausgeruht anschauen. Vielleicht ergeben sie dann mehr Sinn als jetzt.