Movieclips austauschen ? - wichtig

IRIE

Mitglied
HI Leute,

ich arbeite gerade an einem Spiel. Es geht um Pferde füttern.

man hat einen Eimer mit einer Karotte drin, per maus-druck fällt die runter und füttert eins der pferde.

Der Kunde möchte nun, das zufällig entweder apfel, banane, zucker, getreide oben rausfällt. hab die alle in bereits in meiner Bilbliothek ...

ich dachte mir, wenn das "Futter" mit dem Pferd in kontakt gerät. ruf ich dort eine funktion auf. die dann sagt ... zufälliges Futter laden ... aus einem Array oder ?

irgendie klappt das nicht so recht?

habt ihr irgendwelche lösungs vorschläge ?

wär euch sehr dankbar

LG
Michi
 
Hallo,

nehmen wir mal an, du hast folgenden Array:

Code:
var futter = ["Birne", "Apfel", "Banane"];

Wenn du nun nach dem Zufallsprinzip ein Element des Array auswählen willst, brauchst du eine Zufallszahl von 0 (erster Index des Arrays) bis n-1, wobei l für die Anzahl Elemente im Array bzw. der Eigenschaft length der Array-Klasse steht.
Mit Math.random() generierst du einen Pseudo-Zufalls-Wert zwischen 0 und 1, den du mit der Anzahl Möglichkeiten multiplizieren musst. Danach wird das resultat noch auf eine Ganzzahl gerundet und als Index-Identifier benutzt:

Code:
var l = futter.length -1;
var i = Math.round ( Math.random () * l);

trace (futter[i]);
//Output:
//eines der drei Elemente

Ob du nun dein Array mit Strings, MovieClip-Referenzen etc. fütterst, kommt auf die Anwendung des Arrays an.

gruss
 
soweit war ich auch schon ... mit dem Array !!

aber wie kann ich dann das MovieClip austauschen?

wenn meine karrotte z.B. auf spiel.spielumgebung.karotte liegt

muss ich dann einfach spiel.spielumgebung.karotte = futter[2] beispielsweise ?

oder geht das "austauschen" anders ?

krieg das nicht hin :(
 
Hallo,

an deiner Stelle würd ich dein Gemüse in der Bibliothek lassen, aber für ActionScript exportieren (Rechtsklick auf MC in der Bibliothek => Verknüpfungen... => Export für ActionScript/In erstes Frame exportieren => Identifier eingeben) und die jeweiligen Identifier in das Array einfüllen. Nun kannst du den jeweiligen MovieClip dynamisch auf die Bühne legen:

Code:
spiel.spielumgebung.attachMovie(futter[i], futter[i], 1);

Wenn dein Pferd das Gemüse gefressen hat, kannst du den MovieClip wieder entfernen:
Code:
spiel.spielumgebung[futter[i]].removeMovieClip();

gruss
 
Wenn es unbedingt ein MC sein soll, der schon auf der Bühne liegt, kannst Du die Obstsorten auch einfach in die Frames der Zeitleiste des Karottenclips packen (Karotte, Banane, Zucker) und den Clip in "futter" umbenennen. ;) Für einen Wechsel genügt dann ein futter.gotoAndStop(2);, um z.B. zur Banane zu wechseln.

Gruß
.
 
Zurück