Kleiner Denkfehler

SonMiko

Erfahrenes Mitglied
Hallo zusammen,

ich habe ein kleines Problem.
Ich habe einen MovieClip erstellt wo ich in der ersten Zeitleiste folgenden Code eingebe:
Code:
stop();

var zufall=0;//Zufallsvariable

function zufallfunc(){
zufall=2+Math.round(Math.random()*6);//Zufallszahl wird erzeugt (2-8 ist möglich);

//Wenn bereits ein RedBull gesetzt wurde, und die Zufallszahl 8 lautet wird auf Frame 2 angehalten
if(_parent.redbullGesetzt==true && zufall == 8){
gotoAndStop(2);
_parent.anzObjekte++;
}
//Wenn noch kein RedBull gesetzt wurde, und die Zufallszahl 8 lautet wird ein RedBull gesetzt
if(_parent.redbullGesetzt==false && zufall == 8){
	gotoAndStop(8);
	_parent.redbullGesetzt=true;
	_parent.anzObjekte++;
}
//Wenn noch kein RedBull gesetzt wurde, und die Anzahl der Objekte bereits bei 20 liegt, wird das setzen erzwungen
if(_parent.redbullGesetzt==false && _parent.anzObjekte>=20){
	gotoAndStop(8);
	_parent.redbullGesetzt=true;
	_parent.anzObjekte++;
}
if(zufall>=2 && zufall<8){
	gotoAndStop(zufall);
	_parent.anzObjekte++;
}
trace(_parent.redbullGesetzt+" "+_parent.anzObjekte+" "+zufall);
}
zufallfunc();
Dieser Clip hat 8 Frames. Der erste ist leer, nur AS ist drin, die folgenden 7 enthalten verschiedene Objekte. Der 8. Frame eine RedBull Dose.
Später generiere ich sehr viele von diesen Objekten und die RedBull Dose darf nur einmal vorkommen, weshalb ich also in der Hauptzeitleiste die Boolsche Variable "redbullGesetzt" eingefügt habe um dies zu überprüfen.

Leider tauchen ab und zu garkeine Dosen auf.

Woran liegt das?

Würde mich sehr über eine Antwort freuen,

danke und besten Gruß,


Euer


Mike

(Man kein Wunder das man nicht nachdenken kann wenn man zwangsweise ständig von einem Schei..... Radio zugedröhnt wird das hier ein Mitarbeiter verwendet. Ich kann einfach nicht klar denken wenn ständig irgendwer am reden ist wie das Wetter ist oder wieviele Leute gerade im Stau stecken... Grrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr)
 
Zuletzt bearbeitet:
Hi,

Leider tauchen ab und zu garkeine Dosen auf.
Meinst Du damit, dass keine RedBull-Dose auftaucht, oder dass überhaupt keine Frames (ausser dem 1.) angesprungen werden?

Es kann passieren, dass die Zahl 8 nicht gezogen wird, und anzObjekte größer als 20 wird. Dann erzwingst Du zwar den Sprung zu Frame 8, springst danach aber gleich weiter zu dem eigentlich gezogenen Frame:
Code:
if(_parent.redbullGesetzt==false && _parent.anzObjekte>=20){
	gotoAndStop(8);
	_parent.redbullGesetzt=true;
	_parent.anzObjekte++;
}
if(zufall>=2 && zufall<8){
	gotoAndStop(zufall);
	_parent.anzObjekte++;
}
Probiers mal so:
Code:
if (_parent.redbullGesetzt==false && _parent.anzObjekte>=20){
	gotoAndStop(8);
	_parent.redbullGesetzt=true;
	_parent.anzObjekte++;
} else if (zufall>=2 && zufall<8){
	gotoAndStop(zufall);
	_parent.anzObjekte++;
}

Gruß
.
 
Hi Tobi,

tausend Dank mal wieder für Deine Antwort
Also ich hab grad folgendes gemacht,
da wo ich erzwinge, habe ich die Variable "zufall" manuell
auf 8 gesetzt.

Jetzt scheint es zu klappen - ODER ich habe nicht oft genug getestet und
es war Zufall das es geklappt hat. Generell müsste es aber klappen,
da die Dose in Frame 21 oft aufgetaucht ist...

Trotzdem versuche ich jetzt auch noch Deine Variante.

Generell hast Du wieder mal recht - ich widerspreche mir mit der letzten Abfrage...

[10 Minuten später]

Ja Deine Variante ist besser.
Sie funktioniert auch.

Klar das beide klappen:
Wenn ich dann auf 8 setze, kann das untere nicht mehr zutreffen.
Ansonsten treffen zwei Bedingungen zu - was ich total übersehen habe.
Bei Dir kann nur eine von Beiden Bedingungen wahr sein...


Super gelöst - dank Dir ;)


Besten Gruß,


Mike
 
Zurück