TEIL 10: ANIMATIONEN, Aufgaben 54 und 55
Das Kapitel Zufallszahlen hast du durchgearbeitet, nun hindert dich nichts mehr daran, ein Yatschi-Spiel zu programmieren. Aber zunächst backen wir mal kleine Brötchen!
Aufgabe 54
Bei Betätigung des Startschalters soll der Smiley sein Gesicht wechseln.
Dabei wird in dieser Aufgabe (Dateiname:
Anim01) mit einem Trick gearbeitet: im ersten Bild siehst du, dass es ausser der sichtbaren Bildbox noch zwei weitere versteckte Bildboxen gibt, die zum Speichern der beiden verwendeten Bilder dienen.
Es wird nun die TAG-Eigenschaft (=erklärender Text) der Bildboxen ausgenutzt. Setze im Eigenschaftsfenster der Bildboxen 2 und 3 die TAG-Eigenschaft auf "lustig" bzw. "traurig", je nachdem, welcher Smiley dort gespeichert ist.
In einer IF-Abfrage wird das TAG nun abgefragt, das neue Bild geladen und gleichzeitig die TAG-Eigenschaft der ersten Bildbox geändert:
If Picture1.Tag = "lustig" Then
Picture1.Picture = Picture2.Picture
Picture1.Tag = "traurig"
Else
Picture1.Picture = Picture3.Picture
Picture1.Tag = "lustig"
End If
- Zeichne mit einem Pixelgrafikprogramm deiner Wahl zwei Bilder mit Smileys oder auch anderen Gesichtern in der Grösse 80x80 Pixel maximal.
Speichere sie in deinem Arbeitsverzeichnis im JPG- oder GIF-Format unter den Namen gesicht01.gif und gesicht02.gif (oder jpg) ab.
- Erstelle nun ein Formular mit den geeigneten Steuerelementen und speichere Projekt und Formular unter dem Namen anim01.vbp bzw. anim01.frm.
- Setze im Eigenschaftsfenster der Bildboxen deren Autosize-Eigenschaft auf true und lade deine Bilder in die jeweiligen Bildboxen. Denke daran, die TAG-Eigenschaft richtig zu bestimmen.
Stelle nun das Programm fertig, lasse auch eine EXE-Datei erstellen und notiere dir mit Hilfe des Explorers die Grösse dieser ausführbaren Datei (wird für die nächste Aufgabe gebraucht).
Aufgabe 55
Speichert man die in einem Programm benutzten Bilder im ausführbaren Code, so vergrössert dies das Programm. Besser ist es, bei Bedarf die jeweiligen Bilder von Festplatte zu laden, was mit der
LoadPicture-Funktion> ermöglicht wird.
Die Programmzeile
Picture1.picture=LoadPicture ("c:\icons\meinbild.ico") hat den Nachteil, dass das Bild bei Bedarf nicht gefunden wird, wenn z.B. das Verzeichnis verschoben oder umbenannt wurde. Besser ist daher die ff. Zeile:
Picture1.picture=LoadPicture (App.Path & "\meinbild.ico"). Die Bilddatei muss sich dann im selben Verzeichnis wie das ausführbare Programm befinden und - falls man das Programm an Dritte weitergeben will - mitkopiert werden.
Erstelle nun das Programm
anim02.vbp (-.frm, -.exe), das obige Zeile verwendet, ansonster wie anim01.exe funktioniert.