Flashspiel - Variablenübergabe funktioniert nicht?

bigfella

Erfahrenes Mitglied
Hi,
anbei eine *.fla Datei mit nem "Glückspielautomat".
Hab ein totales Brett vorm Kopf.
Kann mir bitte jemand verraten, warum die Übergabe der einzelnen "Ergebnisse" nicht funktionieren?
Bei Gewinn will einfach kein Guthaben erhöht werden.

Danke
 

Anhänge

  • 27859attachment.zip
    7,2 KB · Aufrufe: 17
Hi,

der Code:
Code:
if(var_gewinn1 == var_gewinn2 == var_gewinn3)
{
	trace("GEWINN");
	var_dollar += 100;
}

trace("A: " +var_gewinn1);
trace("B: " +var_gewinn2);
trace("C: " +var_gewinn3);
wird nur einmal ausgeführt, und zwar gleich zu Anfang bevor Du mit dem Spiel beginnst.

Du musst Dir merken, welche Zahl im Moment durchläuft und immer dann, wenn Du eine Zahl anhältst, überprüfen, ob es die letzte Zahl war. Nur in diesem Fall darfst Du die Werte vergleichen.

Der Code auf der Hauptzeitleiste kann z.B. so aussehen:
Code:
var var_dollar = 0;
var var_gewinn1 = 0;
var var_gewinn2 = 0; 
var var_gewinn3 = 0;
var lauf1 = true; // läuft die jeweilige Zahl?
var lauf2 = true;
var lauf3 = true;

function checkGewinn() {
	if (lauf1 == false && lauf2 == false && lauf3 == false) { // nur, wenn keine Zahl mehr läuft:
		if(var_gewinn1 == var_gewinn2 == var_gewinn3)
		{
			trace("GEWINN");
			var_dollar += 100;
		}
	}
}
Der Code auf dem Button "play":
Code:
on(release){
	zahl1.play();
	zahl2.play();
	zahl3.play();
	lauf1 = lauf2 = lauf3 = true; // Alle Zahlen laufen durch!
}
Und der Code auf den einzelnen Zahl-Buttons:
Code:
on(release){
	if (lauf1) { // nur, wenn Zahl 1 läuft:
		zahl1.stop();
		lauf1 = false; // Zahl 1 ist angehalten
		var_gewinn1 = zahl1.ausgabe;
		trace(var_gewinn1);
		checkGewinn();
	}
}
(für Zahl 2 und drei natürlich auch korrespondierend mit den Variablen "lauf2" und "lauf3")

Gruß
.
 
Vielen Dank erstmal für Deine Hilfe,
leuchtet mir auch alles ein.

Hab es nun so geändert wie du sagtest,
jedoch funktioniert die Gewinnausschüttung immer noch nicht.

Hab ich irgendwas übersehen, was vergessen?
 

Anhänge

  • 27861attachment.zip
    8,4 KB · Aufrufe: 10
Hi,

sorry, mein Fehler.

Der Vergleich der Gewinnzahlen muss so aussehen:
Code:
if(var_gewinn1 == var_gewinn2 && var_gewinn1 == var_gewinn3)

Erklärung: Angenommen, alle var_gewinn-Variablen haben den Wert 4. Die Abfrage
Code:
if(var_gewinn1 == var_gewinn2 == var_gewinn3)
wird dann von links nach rechts ausgewertet: "var_gewinn1 == var_gewinn2" (der erste Vergleich) ergibt "true", da beide Werte identisch sind. Dieser Wert wird nun mit var_gewinn3 vergleichen (true == 4) - und dieser Vergleich ergibt "false", da true und 4 nicht identisch sind.

Merke: Vergleiche mehrerer Werte müssen geschachtelt werden.

Gruß
.
 
Super, es funktioniert.
Hast vollkommen Recht.
Kam selbst nicht auf die Idee das es an if-Abfrage liegen könnte.
Danke Dir, hast mir wirklich weitergeholfen.
 
Zurück