| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Apr 2011
Beiträge: 4
| Statuspunkte-Verteiler
Hallo zusammen. Ich bin noch ein Flasch-Neuling und möchte ein kleines Game bauen. ![]() Uploaded with ImageShack.us Mit diesem Bild möchte ich erklären wo ich hin möchte. Ich habe eine gewisse Anzahl von Punkten, die mit hilfe von Plus- und Minus- Button auf Punkt 1 Bzw. Punkt 2 verteilt werden sollen. Das soll dann so sein, dass wenn Punkt 1 ativiert ist, nur darauf Punkte verteilt werden können. Wenn dann Punkt 2 aktiviert wird, soll sich Punkt 1 deaktivieren und die Punkte sollen nur auf Punkt 2 verteilbar sein und anderherum. Mein Hauptproblem ist, dass ich nicht weiss wie ein switch zwischen den beiden Punkten (blau) realisieren kann Ich hoffe es kann mir jemand helfen. danke schon mal. Geändert von Hotzn (11-04-2011 um 14:35 Uhr) |
| | |
| | #2 (permalink) |
| Rock'n'Bass Registriert seit: Feb 2006 Ort: Hamburg
Beiträge: 202
|
Hi! Ich nehme mal an, dass du damit ein ähnliches Punkte-System bauen willst wie auf diesem Foto, oder? (siehe link) --> http://ryl.cibmall.net/char_create.jpg In DEM fall würde ich einfach für jeden Punkt jeweils einen Plus- und einen Minus-Button anlegen. Ist zudem auch klarer zu überblicken denke ich.
__________________ ==>remix.nin.com<== // Life Is Too Short For Boring Music! Fantasie ist die einzige Waffe gegen die Wirklichkeit. Geändert von <sVkVmVit> (11-04-2011 um 15:52 Uhr) |
| | |
| | #3 (permalink) |
| Rock'n'Bass Registriert seit: Feb 2006 Ort: Hamburg
Beiträge: 202
|
Und falls du es doch genau so haben willst, wie du meintest, dann hier einmal ein Code, den ich mal eben geschrieben hab. Natürlich solltest du dir das alles genau durchschauen, damit du's danach auch selbst machen könntest. Erstelle in einem neuen Flashfilm mal 4 Movieclips und gebe denen folgende Instanznamen (in ihrem jeweiligen Eigenschaftenfenster): "plusbutton", "minusbutton", "punkt1" und "punkt2". ( Natürlich wäre es sinnvoll, wenn du deren Erscheinungsbild gleich so machst, wie du es willst. ) Dann kopiere ins selbe Schlüsselbild, in dem deine vier benannten Movieclips liegen, folgenden Code und teste das ganze das ganze mal mit STRG+ENTER. Code: stop();
var anz_punkte:Number = 2;
var aktiverpunkt:Number = 0;
_root.onMouseDown = function(){
for (i=1; i<=anz_punkte; i++){
if (_root["punkt"+i].hitTest(_root._xmouse, _root._ymouse)){
aktiverpunkt = i;
}
if (_root.plusbutton.hitTest(_root._xmouse, _root._ymouse) && aktiverpunkt == i){
trace("punkt"+i+" wird um 1 erhöht.");
}
if (_root.minusbutton.hitTest(_root._xmouse, _root._ymouse) && aktiverpunkt == i){
trace("punkt"+i+" wird 1 abgezogen.");
}
}
} (dass etwas passiert, siehst du im Ausgabefenster, das dann erscheinen sollte)Da ich das ganze in einer for-Schleife angelegt habe, kannst du des weiteren nun auch mehr als nur zwei punkte erstellen (natürlich stets klar nummeriert!). Müsstest dann nur noch den Wert der Variablen anz_punkte entsprechend der Anzahl ändern. EDIT: Ich weiß leider nicht, wie fitt du im Bereich "Programmieren" bist, von daher erkläre ich dir den Code bei Bedarf auch gerne nochmal im Einzelnen. Also einfach fragen, wenn was nicht so klar ist! Lg Nils
__________________ ==>remix.nin.com<== // Life Is Too Short For Boring Music! Fantasie ist die einzige Waffe gegen die Wirklichkeit. Geändert von <sVkVmVit> (11-04-2011 um 16:30 Uhr) |
| | |
| | #4 (permalink) |
| Neuer User Registriert seit: Apr 2011
Beiträge: 4
|
Danke Dir sehr, das war geanau das, was ich suchte. Aber wie es leider immer ist, wirft eine Antwort, tausend weitere Fragen auf. hehe... Wie kann ich so etwas ebenenübergreifend machen und wie kann man das "Punkte-Setting" dann abspeichern? Leider habe ich nicht so viel Ahnung vom Programieren. Aber ich lerne schnell. ![]() danke nochmals Geändert von Hotzn (12-04-2011 um 12:36 Uhr) |
| | |
| | #5 (permalink) | |
| Rock'n'Bass Registriert seit: Feb 2006 Ort: Hamburg
Beiträge: 202
|
Jo kein Problem. Und ja klar man kennt das.. ist das eine erledigt, kommt gleich das nächste.. ![]() Was genau meinst du mit "ebenenübergreifend"? Zitat:
), das für jeden Punkt seinen aktuellen Wert speichert. (Hab das Wort "points" gewählt, da du ja schon deine anderen Objekte als Punkte bezeichnet hast.. könnte sonst zu Verwirrung führen^^) Hab zum besseren Verständnis mal zusätzlich eine Übersicht darüber geschrieben, was nacheinander passiert im Code (siehe unten). ![]() Code: stop();
var anz_punkte:Number = 2;
var aktiverpunkt:Number = 0;
var points:Array = [];
for (i=0; i<anz_punkte; i++){
points[i] = 0;
}
trace("Startwerte im points-Array: "+points+"\n");
// ----------------------------------------------------------
// Mausklick-Events:
_root.onMouseDown = function(){
for (i=1; i<=anz_punkte; i++){
if (_root["punkt"+i].hitTest(_root._xmouse, _root._ymouse)){
aktiverpunkt = i;
}
if (_root.plusbutton.hitTest(_root._xmouse, _root._ymouse) && aktiverpunkt == i){
trace("punkt"+i+" wird um 1 erhöht.");
points[(i-1)] += 1;
trace("Das points-Array ist jetzt: "+points+"\n");
}
if (_root.minusbutton.hitTest(_root._xmouse, _root._ymouse) && aktiverpunkt == i){
trace("punkt"+i+" wird 1 abgezogen.");
if (points[(i-1)] > 0){
points[(i-1)] -= 1;
}
trace("Das points-Array ist jetzt: "+points+"\n");
}
}
} Code: // Variablen definieren // points-Array definieren zum "Archivieren" der jeweiligen Werte für jeden Punkt // Füllen des Arrays mit Nullen als Startwerte // ---------------------------------------------------------- // Mausklick-Events: // Ermitteln des geklickten und somit aktiven Punkts // Bei Klick auf Plusbutton den Wert des jeweils aktiven Punkts um 1 erhöhen // ..und diesen Wert im points-Array speichern // Bei Klick auf Minusbutton dem Wert des jeweils aktiven Punkts 1 abziehen // ..und diesen Wert im points-Array speichern Also bis gleich. ^^::
__________________ ==>remix.nin.com<== // Life Is Too Short For Boring Music! Fantasie ist die einzige Waffe gegen die Wirklichkeit. Geändert von <sVkVmVit> (13-04-2011 um 10:20 Uhr) | |
| | |
| | #6 (permalink) |
| Rock'n'Bass Registriert seit: Feb 2006 Ort: Hamburg
Beiträge: 202
|
Sooo, da bin ich wieder. Wenn du den letzten Beitrag gelesen und angewendet hast, dann fahre nun wie folgt fort: 1. Erstelle 3 Textfelder 2. Stelle alle in ihrem jeweiligen Eigenschaften-Fenster auf "Dynamisches Textfeld" und gebe (ebenfalls in den Eigenschaften) unter Variable fürs erste Textfeld "verbleibend" ein, fürs nächste "anzeige1" und fürs letzte "anzeige2". 3. Du solltest nun 3 dynamische Textfelder auf der Bühne liegen haben, deren Variablennamen "verbleibend", "anzeige1" und "anzeige2" lauten. ( 4. Zur Sicherheit, damit auch wirklich NUR Zahlen dargestellt werden können, kannst du wenn du willst, auch noch unter Einbetten nur Zahlen aktivieren. ) Nun zum Code: - Ich habe unter den bereits bekannten Zeilen (Variablen-Definition und Array-Erstellung) drei weitere Zeilen hinzugefügt, welche dazu da sind, den Textfeldern ihre Startwerte zuzuteilen. - Des weiteren habe ich die Codezeilen, die sich auf den Plus- und den Minusbutton beziehen, entsprechend erweitert. D.h. wenn man nun per Plusbutton den Wert eines Punkts erhöht, wird entsprechend von den verbleibenden points 1 abgezogen ( _root.verbleibend--; ) und mit dem Minusbutton ist es logischerweise dasselbe, nur andersrum ( _root.verbleibend++; ). - Das Anzeigen der Werte der einzelnen Punkte ist nun nur noch ein Kinderspiel und geschieht mit einer einfachen Zeile, die sowohl beim Plus- als auch beim Minusbutton dieselbe ist: _root["anzeige"+i] = points[(i-1)]; Damit wird der jeweils aktuelle Wert des derzeit aktiven Punkts (aus dem zuvor erstellten Array entnommen ) dem zugehörigen "anzeige1"- bzw. "anzeige2"-Textfeld zugewiesen. HINWEISE für die weitere Bearbeitung: Wenn du nun weitere Punkte hinzufügen willst, kannst du dies nun einfach tun. Das einzige, worauf du achten musst, ist, dass sie 1. durchnummerierte Instanznamen haben, also "punkt1", "punkt2", "punkt3", ... usw. und 2. du die Anzahl deiner auf der Bühne befindlichen Punkte im Code unter var anz_punkte:Number = ...; angibst. Die zugehörigen Textfelder zu den Punkten bauchst du ganz einfach nur durchnummeriert auf die Bühne legen. Sooo! Nun bin ich auch erstmal durch. ^^ Ich hoffe du hast soweit einiges verstanden und hoffe, dass nun alles so läuft, wie du es wolltest! LG Nils Code: stop();
var anz_punkte:Number = 2;
var aktiverpunkt:Number = 0;
var points:Array = [];
for (i=0; i<anz_punkte; i++){
points[i] = 0;
}
trace("Startwerte im points-Array: "+points+"\n");
_root.verbleibend = 10;
_root.anzeige1 = 0;
_root.anzeige2 = 0;
//-------------------------------------------------------
// Maus-Events
_root.onMouseDown = function(){
for (i=1; i<=anz_punkte; i++){
if (_root["punkt"+i].hitTest(_root._xmouse, _root._ymouse)){
aktiverpunkt = i;
}
if (_root.plusbutton.hitTest(_root._xmouse, _root._ymouse) && aktiverpunkt == i){
if (_root.verbleibend > 0){
trace("punkt"+i+" wird um 1 erhöht.");
points[(i-1)] += 1;
trace("Das points-Array ist jetzt: "+points+"\n");
_root.verbleibend--;
_root["anzeige"+i] = points[(i-1)];
}
}
if (_root.minusbutton.hitTest(_root._xmouse, _root._ymouse) && aktiverpunkt == i){
if (_root.verbleibend < 10){
if (points[(i-1)] > 0){
trace("punkt"+i+" wird 1 abgezogen.");
points[(i-1)] -= 1;
trace("Das points-Array ist jetzt: "+points+"\n");
_root.verbleibend++;
_root["anzeige"+i] = points[(i-1)];
}
}
}
}
}
__________________ ==>remix.nin.com<== // Life Is Too Short For Boring Music! Fantasie ist die einzige Waffe gegen die Wirklichkeit. Geändert von <sVkVmVit> (13-04-2011 um 13:21 Uhr) |
| | |
| | #7 (permalink) |
| Neuer User Registriert seit: Apr 2011
Beiträge: 4
|
Ich danke Dir sehr. Es funktioniert alles so wie ich mir das vorgestellt habe. Danke, danke, danke. ![]() Auch kann ich alles, dank deiner guten Erklärung, verstehen. Da an einer sehr komplexen Darstellung arbeite, wird es wohl etwas dauern bis ich was vorzeigen kann. Ich sage mal ganz geschwollen: Wenn es so weit ist, zeige ich Dir das Egebniss. Gruss, Hotzn^^ Geändert von Hotzn (14-04-2011 um 18:26 Uhr) |
| | |
| | #8 (permalink) |
| Neuer User Registriert seit: Jul 2001 Ort: Berlin | Friedrichshain
Beiträge: 3.561
|
ich hab eben auch mal schnell ein kleines beispiel zusammen gehackt.. sind zwar ein paar mehr zeilen geworden als deine 47, aber was solls.. ![]() fla (CS3) zum beispiel ist im anhang.. PHP-Code: ![]() gruss //b
__________________ 8bm | join ff@BOINC formpackage.org | audiohunter.de | problematica.de | 8ball-media.de/blog | taikonauten.cn Geändert von the binary (16-04-2011 um 12:50 Uhr) |
| | |
| | #9 (permalink) |
| Neuer User Registriert seit: Jul 2001 Ort: Berlin | Friedrichshain
Beiträge: 3.561
|
hm.. nich gut ?
__________________ 8bm | join ff@BOINC formpackage.org | audiohunter.de | problematica.de | 8ball-media.de/blog | taikonauten.cn |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| event-Verteiler / Instanzname | pius | Softwarearchitektur und Entwurfsmuster | 11 | 26-04-2003 18:00 |
| Verteiler im Formular | Blitzableiter | Flash 4 und Flash 5 | 4 | 23-02-2002 23:31 |