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 quelloffenD.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 BetriebssystemeLazarus 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)

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 betätigt man im Menü die Taste mit dem Pfeil nach rechts. Irgendwann wird dies allerdings häufig als umständlich empfunden und man verwendet die Taste F9 auf der Tastatur.

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 nach Hause 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.