Spiele in Lazarus objektorientiert programmieren/Erste Schritte

Aus ZUM-Unterrichten

Zunächst einmal muss man sich die Entwicklungsumgebung, also das Progamm, mit dem man die Spiele „bastelt“ aus dem Internet herunterladen und installieren. Lazarus hat dabei einige große Vorteile:

  • Lazarus ist kostenlos und quelloffen. D.h. jeder kann Lazarus benutzen (auch ohne Registrierung, Werbeeinblendungen oder Herausgabe persönlicher Daten). Im Grunde darf man das Programm auch selbst verbessern (wobei das kompliziert ist) und weitergeben.
  • Lazarus gibt es für viele Betriebssysteme
  • Lazarus ist für verschiedene Versionen von Microsoft Windows, für MacOS und auch für das freie Betriebssystem Linux verfügbar.


Herunterladen und installieren von Lazarus

Wie oben erwähnt, steht die Lazarus-IDE jedem kostenlos zur Verfügung. Die entsprechende Web-Adresse ist

www.lazarus-ide.org

Microsoft Windows

Man muss sich hier dann für ein entsprechendes Betriebssystem entscheiden. Standardmäßig bietet die Website die aktuelle Version von Lazarus zum Download passend für das jeweilige Betriebssystem an. Arbeitet man alleine und nur auf dem eigenen Rechner mit Lazarus, ist das in der Regel auch die beste Wahl.

Anders ist es, wenn man z.B. zu Hause und auch in der Schule mit Lazarus arbeitet. In diesem Fall sollte man sich möglichst genau die Version von Lazarus herunterladen, die auch in der Schule installiert ist. Ist in der Schule eine 32-Bit-Version installiert, läuft diese auch problemlos zu Hause auf einem 64-Bit-Betriebssystem.

Das Ausführen des heruntergeladenen Programms installiert Lazarus auf dem entsprechenden Rechner.

Linux

Für Linux stehen mehrere Möglichkeiten zur Verfügung. Entweder verwendet man die Version von Lazarus, die im so genannten Repository der jeweiligen Linux-Distribution verfügbar ist. Bei allen Ubuntu-Linux-Systemen wie KUbuntu, XUbuntu etc. findet sich eine Lazarus-Version im Repository, allerdings nicht immer die aktuelleste.

Möchte man eine andere (neuere oder etwa zum Schul-System passendere), muss man sie sich doch von der oben genannten Website herunterladen und manuell installieren.

MacOS

– folgt –

Die Lazarus-Entwicklungsumgebung (IDE)

Die Oberfläche der Lazarus Entwicklungsumgebung (kurz: "IDE" genannt für "Integrated Development Environment") besteht aus mehreren Fenstern.

PDLazS IDE-neu.png

  • Ganz oben ist das Hauptfenster mit der Überschrift Lazarus IDE. In diesem Fenster ist das gesamte Projektmanagement für eigene Programmierprojekte zusammengefasst, außerdem kann man hier eine große Menge von graphischen Elementen wie Knöpfe, Eingabefelder, Bilder etc. zur Verwendung in seinen eigenen Programmen auswählen.
  • Links ist der so genannte Objektinpektor. Mit diesem kann man die einzelnen Objekte, aus denen ein Programm besteht, in ihren Eigenschaften verändern und festlege, wie das Programm auf bestimmte Ereignisse reagieren soll.
    • In der oberen Hälfte des Objektinspektors befindet sich eine Liste der im Programmfenster verfügbaren Objekte, die man dort auch auswählen kann.
    • Darunter befindet sich ein Register mit verschiedenen Registerkarten. Für uns interessant sind die Registerkarte Eigenschaften und die Registerkarte Ereignisse.
  • In der Mitte befinden sich zum einen ...
    • ... der Quelltexteditor: Hier findet später die eigentliche Programmierarbeit statt.
    • ... der Entwurf des Programmfensters, wo man bereits sieht, wie das Programm später ungefähr ausschauen wird.
  • Ganz unten befindet sich das Fenster Nachrichten, bei dem Lazarus verschiedene Meldungen an den Programmier ausgibt, vor allem Fehlermeldungen, wenn man sich beim Programmieren vertippt hat.

Ein erstes Programm

Häufig ist beim ersten Start von Lazarus schon ein leeres Projekt vorhanden. Falls nicht, kann man sich über die folgenden Schritte ein neues Projekt öffnen:

  • Projekt | Neues Projekt …
  • Anwendung
  • OK

Selbst wenn man noch kein einziges Zeichen getippt hat, erzeugt die Lazarus-IDE beim Erstellen eines neuen Projekts einen Programmtext, den man dann „nur noch“ ergänzen muss. Das spart jede Menge Arbeit und vermeidet Fehler.

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs;

type
  TForm1 = class(TForm)
  private
    { private declarations }
  public
    { public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.lfm}

end.

Schon ein „leeres“ Programm kann man starten. Hierfür gibt es mehrere Möglichkeiten

  • Man wählt im Menü Start | Start
  • Man wählt die Taste mit dem Pfeil nach rechts ("Play-Symbol")
  • Man drückt die Funktionstaste F9 (Da man beim Testen Programme immer und immer wieder startet, gewöhnt man sich an dieses Tastenkürzel in der Regel sehr schnell).

Projektverwaltung in Lazarus

Die Projektverwaltung unter Lazarus ist etwas schwierig, weil ein Projekt nicht aus einer einzigen Datei sondern in der Regel aus vielen Dateien besteht.

Hat man ein neues Projekt gerade erzeugt, so trägt das Gesamtprojekt den phantasievollen Namen Project1 und das zugehörige Fenster mit dem dazugehörigen Programmtext den nicht weniger phantasievollen Namen Unit1.Um Frustrationen durch abgestürzte Projekte (weitgehend) zu vermeiden, geht man am besten folgendermaßen vor:* Direkt nach dem Erzeugen eines neuen Projekts wählt man Projekt | Projekt speichern unter …

  • Man erzeugt im folgenden Dialog (mit Rechtsklick und Neu) einen neuen Ordner, in dem das gesamte Projekt gespeichert werden soll und wechselt in diesen Ordner.
  • Man wählt einen sinnvollen Namen für ein Projekt aus.
  • Danach erscheint ein weiterer Dialog. Das ist kein Fehler, sondern Absicht: Das Fenster und sein Programmtext müssen nämlich unter einem anderen Namen ebenfalls gespeichert werden. Sehr zu empfehlen aber ist, dass diese Dateien im gleichen Ordner wie die Projektdatei stehen. Ebenfalls zu empfehlen ist, dass man am Namen erkennt, zu welchen Projekt zu gehören. Wenn das Projekt z.B. „beispiel“ heißt, könnte das Fenster „beispiel_fm“ heißen (fm für „form“, also Fenster).
  • Wichtig: In Dateinamen gehören weder Umlaute (ÄÖÜß …) und auch keine Leer- oder Sonderzeichen (wie „.“; lediglich der Unterstrich (underscore, _) ist erlaubt und auch empfehlenswert für Trennungen von Wörtern. Weiterhin empfiehlt es sich, hier nur Kleinbuchstaben zu verwenden.
  • Beim Transportieren von einem Rechner zu einem anderen reicht es in der Regel nicht, einzelne Dateien auf einen USB-Stick zu kopieren. Stattdessen wird unbedingt empfohlen, den ganzen Ordner eines Projekts auf den USB-Stick zu kopieren (oder den Ordner als .ZIP-Datei zusammenzupacken).

Beim Speichern von Projekt und Fenster entstehen eine Reihe von Dateien. Beim obigen Beispiel wären dies

Dateityp Inhalt
beispiel.lpi Lazarus-Projekt-Information. Hier ist die gesamte Projektverwaltung gespeichert.
beispiel.ico Das Symbol (Icon), das beim Laufen des Programms angezeigt wird.
beispiel.lpr Das Hauptprogramm, das aber von Lazarus automatisch erzeugt wird und bei einfachen Programmen für den Programmierer uninteressant ist, für Lazarus selbst aber sehr wichtig.
beispiel.lps Projekt-Sitzungs-Datei (nur für die Verwaltung interessant)
beispiel.res Hier werden zusätzliche Elemente wie Graphiken etc. abgespeichert.
beispiel_fm.lfm Hier werden die Fenster abgespeichert und welche Bedienelemente wo auf dem Fenster zu finden sind.
beispiel_fm.pas In Pascal geschriebene Programmdatei. Das ist die Datei, in der der Programmierer in der Regel kreativ wird.

Die Trennung zwischen Projekt und Fenster klingt zunächst umständlich. Der Sinn dieser Trennung wird aber klar, wenn man sich überlegt, dass es z.B. bei einem Spiel ein Hauptfenster mit dem eigentlichen Spielgeschehen geben kann, aber z.B. auch noch ein Fenster für die Benutzerverwaltung oder für eine Highscore-Liste, wenn man bei dem Spiel Punkte sammeln kann.