Spiele in Lazarus objektorientiert programmieren/Ein einfaches Spiel mit mehreren Objekten: Unterschied zwischen den Versionen

Aus ZUM-Unterrichten
main>Peterdauscher
main>Peterdauscher
Zeile 1: Zeile 1:
==  Hinzufügen weiterer Objekte ==
==  Hinzufügen eines Bild-Objekts ==


Auf die Dauer ist ein einfaches Fenster, auf dem außer dem Hinweis nichts zu sehen ist, doch recht langweilig. Wir fügen aus dem Reiter „Additional“ geometrisches Objekt, genauer: ein Objekt vom Typ TShape hinzu. Hierfür klicken wir zunächst auf das Symbol in der Symbolleiste und dann irgendwo in das Formular.
Auf die Dauer ist ein einfaches Fenster, auf dem außer dem Hinweis nichts zu sehen ist, doch recht langweilig. Deshalb wollen wir nun auf diesem Fenster weitere Objekte platzieren, in diesem Fall: Bilder.
 
Zunächst erstellen wir ein neues Projekt und speichern es im Ordner '''ErstesSpiel''' (kein Leerzeichen). Dabei heißt das Projekt ebenfalls '''ErstesSpiel''', während wir das Fenster '''ErstesSpiel_fm''' nennen (wieder kein Leerzeichen).
 
 
Um ein Bild auf dem Fenster zu platzieren, wählt man im Lazarus-IDE-Fenster die Registerkarte '''Additional''' und wählt dort ein Objekt des Typs '''TImage''' aus. Danach kann man auf dem Fenster das Bild mit der Maus in die gewünschte Größe ziehen (das geht aber auch noch nachträglich).
 
 
 
 
Wir fügen aus dem Reiter „Additional“ geometrisches Objekt, genauer: ein Objekt vom Typ TShape hinzu. Hierfür klicken wir zunächst auf das Symbol in der Symbolleiste und dann irgendwo in das Formular.


Man kann das nun entstandene Objekt mit dem Namen Shape1 nun nachträglich mit der Maus verschieben. Man kann die Form (Shape) und die Farbe (Color) im Objektinspektor verändern.  
Man kann das nun entstandene Objekt mit dem Namen Shape1 nun nachträglich mit der Maus verschieben. Man kann die Form (Shape) und die Farbe (Color) im Objektinspektor verändern.  

Version vom 14. Dezember 2018, 14:50 Uhr

Hinzufügen eines Bild-Objekts

Auf die Dauer ist ein einfaches Fenster, auf dem außer dem Hinweis nichts zu sehen ist, doch recht langweilig. Deshalb wollen wir nun auf diesem Fenster weitere Objekte platzieren, in diesem Fall: Bilder.

Zunächst erstellen wir ein neues Projekt und speichern es im Ordner ErstesSpiel (kein Leerzeichen). Dabei heißt das Projekt ebenfalls ErstesSpiel, während wir das Fenster ErstesSpiel_fm nennen (wieder kein Leerzeichen).


Um ein Bild auf dem Fenster zu platzieren, wählt man im Lazarus-IDE-Fenster die Registerkarte Additional und wählt dort ein Objekt des Typs TImage aus. Danach kann man auf dem Fenster das Bild mit der Maus in die gewünschte Größe ziehen (das geht aber auch noch nachträglich).



Wir fügen aus dem Reiter „Additional“ geometrisches Objekt, genauer: ein Objekt vom Typ TShape hinzu. Hierfür klicken wir zunächst auf das Symbol in der Symbolleiste und dann irgendwo in das Formular.

Man kann das nun entstandene Objekt mit dem Namen Shape1 nun nachträglich mit der Maus verschieben. Man kann die Form (Shape) und die Farbe (Color) im Objektinspektor verändern.

Natürlich geht das auch innerhalb der entsprechenden Methoden des Programms. Will man z.B., dass die Koordinaten des Objekts sich beim Drücken einer Maustaste irgendwo im Fenster (außer auf die geometrische Form selbst) ändern, so könnte das so aussehen.


procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  Shape1.Left:=10;
  Shape1.Top:=20;
end;

Wichtig: Da wir es hier jetzt mit mehreren Objekten zu tun haben, müssen wir im Objektinspektor zunächst tatsächlich Form1 auswählen und dann im Reiter „Ereignisse“ rechts neben dem Ereignis OnMouseDown einen Doppelklick ausführen.

In der zweiten Zeile kann man erkennen, dass innerhalb der Methode noch die Variablen X und Y zur Verfügung stehen. Diese liefern die Informationen, wo genau der Mauszeiger stand, als die Maustaste gedrückt wurde. Das lässt sich nutzen, um unsere geometrische Form mit der linken oberen Ecke genau an die Position des Mauszeigers zu setzen, wenn die Maustaste gedrückt ist. Will man, dass das geometrische Objekt z.B. unsichtbar wird, wenn man auf das geometrische Objekt selbst klickt, so muss man im Objekt Shape1 im Objektinspektor auswählen und dann dort neben dem Ereignis OnMouseDown den Doppelklick ausführen.

Die so entstandene Methode können wir nun ergänzen.

procedure TForm1.Shape1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  Shape1.Visible:=FALSE;
end;

Wichtig: Egal, welches Objekt (hier: Fenster oder geometrisches Objekt) das Ereignis auslöst; die zugehörige Methode gehört in Lazarus immer zum Fenster.