Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 21-07-2005, 12:25   #1 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Beiträge: 173
Flash-Spiel mit XML

Hallo,

ich bin gerade dabei ein Spiel in Flash mit Hilfe von XML zu realisieren.

Folgendes Problem:
Ich möchte ein Spiel machen, bei dem man Brückenwörter eingeben muss, d.h. es wird ein Anfangs- und ein Endwort vorgegeben, und der User muss das Wort dazwischen rausfinden. Beispiel: Hühner - BRUST - warze.

Die Wörter stehen in einem XML-File das folgendermaßen aussieht:
HTML-Code:
<?xml version="1.0" encoding="ISO-8859-1"?>
<brueckenwoerter>
	<wort links="Fluss" mitte="Bett" rechts="Pfosten"></wort>
	<wort links="Haus" mitte="Tuer" rechts="Klinke"></wort>
	<wort links="Taschen" mitte="spiel" rechts="macher"></wort>
</brueckenwoerter>
Die Wörter sollen jedesmal in einer zufälligen Reihenfolge aufgerufen werden, da es sonst ja langweilig wird. Gleichzeitig läuft ein Countdown. Für jede richtig Antwort gibt es einen Punkt.

Soweit so gut. Ich bin jetzt soweit, dass beim ersten Aufruf ein Reihe aus dem XML zufällig ausgelesen wird und man die Antwort in ein Feld schreiben muss. Wenn richtig gibts nen Punkt, wenn falsch passiert nichts. Der Countdown läuft auch schon.

Meine Frage: Wie bekomme ich es hin, dass nachdem man auf den Weiter-Button geklickt hat der MC neu geschrieben wird, und zwar mit einer Reihe aus dem XML die im bisherigen Spielverlauf noch nicht vorkam. Außerdem würde ich gerne wissen, ob es eine Möglichkeit gibt das Eingabefeld nicht case sensitive zu machen, damit man nur die richtigen Buchstaben eingeben muss, die Groß- und Kleinschreibung aber keine Rolle spielt.

Die Dateien hänge ich mit an.

Ich bin über jede Hilfe dankbar.

Viele Grüße
Manni
Angehängte Dateien
Dateityp: zip brueckenwörter.zip (6,1 KB, 4x aufgerufen)
mannimedia ist offline   Mit Zitat antworten
Alt 21-07-2005, 16:08   #2 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.322
siehe anhang
Angehängte Dateien
Dateityp: zip brueckenwörter.zip (14,8 KB, 14x aufgerufen)
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 21-07-2005, 20:18   #3 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Beiträge: 173
hallo hgseib,

vielen dank schonmal für die hilfe. hab jetzt ne weile damit verbracht das skript so zu verstehen. wusste nicht was man mit den arrays so alles machen kann. aber jetzt bin ich schlauer :-). ein frage, ist es noch möglich dass die reihenfolge zufällig gewählt wird? etwa so:
ActionScript:
  1. function fNeuesWort() {
  2.     var w = _global.worte;
  3.     var w0 = w[random(_global.worte.length)];
  4.     b_mc.links_int.text = w0.links;
  5.     b_mc.antwort_int.text = "";
  6.     b_mc.rechts_int.text = w0.rechts;
  7.     richtig = w0.mitte.toLowerCase();//setzt variable und macht kleinbuchstaben daraus
  8.     // dieses wort nicht mehr
  9.     w.shift();
  10. }

problem ist jetzt nur, dass er zwar am anfang zufällig wählt, es aber sein kann, dass der falsche wert aus dem array gelöscht wird. kann man da was machen?

vielen dank und grüße
manni
mannimedia ist offline   Mit Zitat antworten
Alt 21-07-2005, 21:26   #4 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.322
das sortieren sollte natürlich ein 'durcheinander machen' sein. habe ich verpennt.

w.sort();
ist vollkommen falsch und muss ersetzt werden durch:
_global.worte.sort(function(){return random(3)-1;});

so sind die worte von anfang an gemischt. davon wird immer das erste angezeigt und gelöscht, damit es sich nicht wiederholt.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 22-07-2005, 08:30   #5 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Beiträge: 173
Hi,

super, jetzt funktionierts genauso wie ich es wollte. hab noch die funktion so geändert, dass man das XML beliebig lang schreiben kann.
ActionScript:
  1. _global.worte.sort(function(){return random(_global.worte.length)-1;});

Viele Grüße und vielen Dank
Manni

Geändert von mannimedia (22-07-2005 um 13:10 Uhr)
mannimedia ist offline   Mit Zitat antworten
Alt 22-07-2005, 16:32   #6 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.322
tolle idee, leider absolut falsch !!! ;-)


(function stammt übrigen nicht von mir)
xxx.sort(function(){return random(3)-1;});

xxx.sort sortiert alpabetisch aufsteigend. mit einer eigenen funktion kann man die sortierung beeinflussen (im handbuch nach zu lesen). die funktion wird je vergleich aufgerufen und muss 1, 0 oder -1 zurück geben. exakt das liefert:
random(3)-1
[0,1,2]-1 ==> -1,0,1

mit
random(_global.worte.length)-1
wird nicht zufällig sortiert, da viel zu viele werte >0 erzeugt werden.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 26-07-2005, 15:25   #7 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Beiträge: 173
hi,

lustigerweise hat es trotzdem funktioniert, daher dachte ich es ist so richtig.

vielen dank nochmal für die hilfe.
mannimedia ist offline   Mit Zitat antworten
Alt 26-07-2005, 15:33   #8 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.322
wenn du mehr als deine drei möglichkeiten hast, dann wirst du sehen, das es so garnicht so doll zufällig verteilt wurde. das ist der unterschied.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 26-07-2005, 15:51   #9 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Beiträge: 173
alles klar. ich habe mir nochmal die sort-Funktion in der Hilfe durchgelesen und jetzt weiß ich auch was deine funktion macht. mich hatte verwirrt, dass im XML 3 Reihen waren und in der klammer eben auch ne 3 stand. deshalb dachte ich, dass ich das so erweitern kann.
mannimedia ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 12:35 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele