| |||||||
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: Feb 2009
Beiträge: 3
| Problem mit drag and drop
hallo ich habe ein problem mit drag and drop. in diesem kleinen test sollen 2 spieler abwechselnd ihre spielfiguren über des spielfeld bewegen können, per druck auf einen button is jeweils der andere spieler am zug. es klapt auch soweit bis auf das nach dem ersten wechsel von spieler 1 auf spieler 2(oder andersrum) die onPress funktionalität weiterhin auf dem mc von spieler 1 liegt. in spieler.aktiv liegt ja der string des im jeweiligen zug anzusprechenden movieclips, warum wird also das drag and drop immer richtig gestartet aber bleibt weiterhin auf dem movieclip des als ersten aktiven spielers liegen? ich habe wirklich schon alles versucht was mir eingefallen ist aber ich bekomme das problem einfach nicht gelöst! Code: // objekt erzeugen
var spieler:Object = new Object();
// beim start ist spieler1 am zug
spieler.aktiv = "spieler1_mc";
// spieler mcs erstellen
_root.attachMovie("spieler","spieler1_mc",1);
_root.attachMovie("spieler","spieler2_mc",2);
// startposizionen setzen
_root.spieler1_mc._x = 100;
_root.spieler1_mc._y = 100;
_root.spieler2_mc._x = 200;
_root.spieler2_mc._y = 200;
//drag des aktiven spielers starten
_root[spieler.aktiv].onPress = function() {
_root[spieler.aktiv].startDrag();
};
// drag des aktiven spielers beenden
_root[spieler.aktiv].onRelease = function() {
_root[spieler.aktiv].stopDrag();
};
// durch drücken eines buttons den aktiven spieler wechseln
_root.zugende_btn.onRelease = function() {
stopDrag();
if (spieler.aktiv == "spieler1_mc") {
spieler.aktiv = "spieler2_mc";
} else {
spieler.aktiv = "spieler1_mc";
}
}; |
| | |
| | #2 (permalink) |
| So'n User Registriert seit: Dec 2005
Beiträge: 207
|
Hallo, Du machst den Fehler, dass Du zu Begin nur dem ersten Spieler die beiden Funktionen "onPress" und "onRelease" zuweist. Da Deine Variable "spieler.aktiv" ja erstmal den Wert "spieler1_mc" trägt. Definiere am Anfang mal für beide Spieler die Funktionen PHP-Code: Etwas so: PHP-Code: Oder Du definierst und löscht die Funktionen des jeweiligen Spielers innerhalb Deines Buttons "zugende_btn", je nachdem wer dann wieder dran ist. Geändert von anfiba (21-03-2009 um 10:47 Uhr) |
| | |
| | #3 (permalink) |
| Neuer User Registriert seit: Feb 2009
Beiträge: 3
|
danke für die schnelle antwort, es klapt jezt einwandfrei! doch damit tut sich auch gleich das nächste problem auf. ich habe mein kleines script umgeschrieben und um einige funktionalitäten erweitert. jezt wird bei rollover auf die spielfigur eine bewegungs schablone eingeblendet die die maximale bewegung der figur anzeigt und bewegungen darüber hinaus verhindert. dies ist nur eine der funktionalitäten die ich mir ausgedacht habe, am ende sollen die spielfiguren sich bewegen, schiessen und viele andere handlugen ausfüren können. nun das problem vor dem ich stehe. hat jeder spieler nur eine figur wüste ich wie ich das ganze implementieren kann aber jeder spieler soll sagen wir mal 5-10 tups mit je 5-15 einheiten haben und jede soll über der ihrem typ zugewiesenen eigenschaften und funktionen vergügen. ich habe jezt nur leider überhaup keine vorstellung wie ich das realisieren soll ohne für jeden mc jeder spielfigur wie ich es in dem code hier gemacht habe einzeln die funktionalitäten zu implementieren(was sicher nicht der beste weg ist. zumidest kann ich mir das nicht vorstellen). vielleicht kann mir jemand von euch einen denkanstos oder noch besser ein kleines beispiel geben wie ich da ran gehen soll oder genauer wie ich für jede möglichkeit die eine spielfigur haben kann einen prototyp erzeugen kann auf den die vom aktiven spieler jeweils gerade ausgewälte einheit dann zugreifen kann. ich hoffe meine frage ist einigermaßen richtig gestellt und verständlich. ich bin noch ein as neuling und trotz lektüre zahlreicher as tuts und hilfen habe ich wohl einige grundlegenden sachen noch nicht so richtig verstanden. hier mein aktueller code(die klasse und den start bildschirm habe ich jezt nicht mit gepostet): PHP-Code: |
| | |
| | #4 (permalink) |
| So'n User Registriert seit: Dec 2005
Beiträge: 207
|
Hallo, das Bester wäre ja natürlich, dass Du alles auf AS3 umbaust und Dir dort dann Deine Klassen schreibst und dort definierst, was Dein einzelner Spieler kann. In Deinem Fall musst Du Dir dann Methoden schreiben, die Deinen Spielern die Aktionen zuweist. Somit hast Du dann an einer zentralen Stelle die Definition. z.B. PHP-Code: Das ist wie gesagt nur eine Möglichkeit bei Deinem jetzigen Aufbau. Das lässt Dir die Sache aber bei so einem komplexen Spiel - was es ja mal werden soll - schnell sehr unübersichtlich werden. Da bietet Dir AS3 weitaus mehr Möglichkeiten das modularer aufzubauen. Dazu müsst Du Dich aber mit Klassenprogrammierung beschäftigen. |
| | |
| | #5 (permalink) |
| Neuer User Registriert seit: Feb 2009
Beiträge: 3
|
danke für deine anregung anfiba! ich werde mich gleich mal dran machen ein paar klassen zu entwerfen und versuchen meine funktionalitäten in ihnen einzubauen. mal schauen ob ich schon genau von klassen verstanden habe um dies zu bewergstelligen. werde meine ersten ergebnisse wieder hier posten. |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |