Anzeige

Movieclips austauschen ? - wichtig


#1
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
 

luke_the_duke

Erfahrenes Mitglied
#2
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
 
#3
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 :(
 

luke_the_duke

Erfahrenes Mitglied
#4
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
 

Tobias Menzel

Erfahrenes Mitglied
#5
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ß
.
 
Anzeige
Anzeige