Forenindex » Archiv » Adobe Director » Spielstände speichern

Spielstände speichern

Barbara Eckholdt
Beiträge gesamt: 585

2. Mai 2003, 19:25
Bewertung:

gelesen: 3686

Beitrag als Lesezeichen
Hat jemand Erfahrung mit dem Speichern von Spielständen bzw. Zuständen? Als ich mir vor Jahren Director 7 gekauft habe, hatte ich eigentlich Lust, im weitesten Sinne Spieleanwendungen für Kinder zu basteln. Bin allerdings relativ schnell an dem Problem des Speicherns und Wiederherstellens gescheitert. Was Lingo anbetrifft, scheine ich nicht sprachbegabt zu sein :-( Dieses neue Forum hat mich jetzt zum Weitermachen animiert.

Mir ist klar, dass diese Frage je individuell beantwortet werden müsste. Ich wäre aber in der Lage, durch Anschauung zu lernen, um mir meine individuellen Lösungen zu bauen bzw. überhaupt etwas zu verstehen. Wenn mir also jemand ein simples Beispiel zur Verfügung stellen könnte, wäre ich sehr glücklich :-))

Gruß von Barbara

Spielstände speichern

donkey shot
Beiträge gesamt: 1416

3. Mai 2003, 01:44
Bewertung:

gelesen: 3686

Beitrag als Lesezeichen
hallo barbara.

spielstände speichern habe ich bislang noch nicht gebraucht, werde aber demnächst in dieser richtung etwas rumskripten müssen, da ich gerade an so etwas wie einem spiel arbeite. da brauche ich dann spielstände und highscores. die vorgehensweise dabei ist mir auch schon klar.

ich habe bereits in einer anwendung etwas ähnliches gebastelt, nämlich eine "history" - man konnte also immer mittels eines zurück-buttons zurück und mittels eines vor-buttons vorangehen. die jeweiligen marker habe ich in eine liste geschrieben, die director auslesen konnte. das ganze wird dann etwas komplizierter, wenn du verschiedene filme hast.

ich weiss nicht, wie vertraut du mit der arbeit mit listen in lingo bist. dieses wäre voraussetzung, um eine solche "history" zum laufen zu bringen. auch andere für spielstände wichtige dinge kannst du in eine liste schreiben.

mit dem befehl "SetPref" kannst du eine textdatei auf die festplatte des anwenders spielen, die du mit dem befehl "getPref" auslesen kannst. in diese textdatei kannst du dinge hineinschreiben wie marker, aktuellen film oder andere für deinen gameplay wichtige dinge. das ganze ist mit einem "cookie" vergleichbar und wäre eine einfache lösung für das problem.

da ich nun ins wochenende entschwinden werde muss diese knappe und allgemeingehaltene antwort erstmal reichen, wenn du konkretere fragen oder fragen dazu hast, bin ich anfang der woche wieder verfügbar.

grüsse

Christof

P.S.: zu den anschauungsbeispielen: ich kann das skript mit der history-list mal posten, das muss ich allerdings erst raussuchen.

Spielstände speichern

Barbara Eckholdt
Beiträge gesamt: 585

4. Mai 2003, 11:16
Bewertung:

gelesen: 3686

Beitrag als Lesezeichen
Hallo an den spanischen Reiter (hat etwas gedauert, bis ich den Witz gesehen habe)!

Vertraut? Mit Lingo?? Gar mit Listen??? Nein, im Ernst, über die simpelsten Konstruktionen bin ich in dieser Sprache (trotz guter Handbücher) nicht hinausgekommen. Aber wenn du erlaubst, würde ich gern meine Fragen in kleinen Portionen stellen.

1. Frage: Angenommen, mein Film enthielte 3 Frames (ich platziere sie jetzt mal willkürlich auf 15, 25 und 35) - und damit auch 3 zu speichernde und wieder auszulesende Positionen, in denen sich der Abspielknopf befinden kann. Welche Skripte müsste ich dann wo einsetzen?

Gruß von Barbara

Spielstände speichern

donkey shot
Beiträge gesamt: 1416

5. Mai 2003, 16:21
Bewertung:

gelesen: 3686

Beitrag als Lesezeichen
>> 1. Frage:...

Am besten Du benutzt Marker (Markierungen), um die Positionen zu bestimmen. Diese benennst Du (keine Umlaute oder Sonderzeichen, das gibt Scriptfehler auf dem PC). Dieses Verhalten (jetzt etwas vereinfacht) könnstest Du an einen Vor- oder Zurückbutton anbringen (oder an einen versteckten Hotspot im Spiel):

property myMarker

on mouseUp me
go to myMarker
end mouseUp

on getPropertyDescriptionList (me)
set pList = [:]
addProp pList, #myMarker, [#comment: "Markierung:", #format: #marker]
return pList
end

Es bietet sogar die Möglichkeit, den jeweiligen Marker bequem über das Parameter-Knöpsken einzustellen. Wichtig ist, das Du immer spezifische Namen vergibst, damit wir diese später auslesen können.

Mit dem Skript legst Du die Eigenschaft (property) "myMarker" (habe ich mir so ausgedacht) fest, also, den jeweils mit diesem Knopf zu erreichenden Marker.

Diesen müssen wir auch global (also im ganzen Film) zugänglich machen. Dazu könntest Du ein Filmskript schreiben:

global currMark

on startMovie
currMark = "ersterMarkerderauftaucht"
end startMovie

da legst Du die globale Variable "currMark" (habe ich mir jetzt ausgedacht, etwa wie currentMarker) fest und setzt diese auf den ersten Marker.

Jetzt müssen wir dafür sorgen, dass Director auch bei jedem neuen Marker erfährt, wie dieser heisst. Dazu setzen wir folgende zeilen in das erste Skript:

global currMark (gleich in die erste zeile)

und (als neuen Event-Handler)

on beginSprite me
currMark = myMarker
end beginSprite

Damit ändert sich immer mit dem Marker die globale Variable "currMark", die Du jederzeit auslesen speichern und auch wieder laden kannst.

So jetzt muss ich leider aus dem Haus. Hoffe, das hilft erstmal weiter.

Zum Thema Lingo kann ich das Buch "Director 8" von Jason Roberts und Phil Gross empfehlen (Addion-Wesley). Die erklären eigentlich ganz gut (und allgemeinverständlich!) die grundlegenden Prinzipien von Lingo. Ist zwar teuer, das Buch, aber vielleicht gibts das ja bei eBay...

greez cb

Spielstände speichern

Barbara Eckholdt
Beiträge gesamt: 585

6. Mai 2003, 23:01
Bewertung:

gelesen: 3686

Beitrag als Lesezeichen
Addison-Wesley steht ja (für 7) selbstverfreilich bei mir. Sind immer ihr Geld wert ;-)

Ich komme allerding erst in den nächsten Tagen dazu, mich mit Deiner Antwort zu beschäftigen. Bis dahin Dank und
Gruß von Barbara