Forenindex » Archiv » Adobe Director » mehrere Sprites in einer Variable einbinden

mehrere Sprites in einer Variable einbinden

Mrs.Swietly
Beiträge gesamt: 2

27. Aug 2003, 15:21
Bewertung:

gelesen: 470

Beitrag als Lesezeichen
Ich schaff es nicht mehrere Sprites (insegesamt 6 mit Spritenummer 7 bis 15) in eine Variable zu fassen, wie zum Beispiel:

on exitframe
gSteine=7 to 15

if sprite(gSteine).visible=0 then
alert "You've made it!"
end if
end

er "Expected an end of Statement" nach dem "to" bei der Zeile: gSteine=7 to 15

Denk ich zu simpel?

Das einzige was ich vom Computer will ist, wenn alle Steine unsichtbar sind, soll er das Warnfenster "You've made it" anzeigen. Aber wie sage ich ihm das?

Mrs.Swietly

mehrere Sprites in einer Variable einbinden

donkey shot
Beiträge gesamt: 1416

28. Aug 2003, 01:13
Bewertung:

gelesen: 470

Beitrag als Lesezeichen
Die Lösung wäre eine verschachtelte if...then-Abfrage

if sprite(15).visible = FALSE then
if sprite(14).visible = FALSE then
if sprite(13).visible = FALSE then
if sprite(12).visible = FALSE then
.
.
.
alert "blabla"
else
nothing
end if
end if
end if
end if

Da das aber äußerst umständlich und unflexibel ist, würde ich anders vorgehen und zB. eine Liste verwenden.
Die definierst Du als globale Variable in einem Fimskript:

global stoneList

on startMovie
stoneList = []
end startMovie

In das Skript, das die jeweiligen Sprites unsichtbar macht setzt Du dann die folgende Zeile ein.

append stoneList, 1

also zB.

global stoneList

on mouseUp me
sprite(x).visible = FALSE
append stoneList, 1
end mouseUp

Später kannst Du dann die Zahl der Listeneinträge abfragen, in Deinem Fall:

global stoneList, myCount

on exitFrame
myCount = 7
if stoneList.count < myCount then
alert "You've made it! I admire you hopelessly!"
else
nothing
end if
end exitFrame

Wie Du siehst habe ich hier noch eine Variable definiert, nämlich myCount. Die kannst Du jederzeit irgendwie ändern, in einem zweiten Level könntest Du also die "stoneList", wie ich sie genannt habe, wieder auf stoneList = [] zurücksetzen und myCount auf zB. 20 setzten, wenn man da denn 20 sprites unsichtbar machen muß.

In dem Skript oben habe ich 1 angefügt, Du kannst natürlich auch alles andere anfügen. ZB. eine Punktzahl, die dann später ausgelesen wird, etc. ...

grüsse,

Christof