| |||||||
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: Dec 2010
Beiträge: 18
|
Hallo liebe Community! Ich habe ein komisches Problem! Ich füge in einem Loop Objekte zum Stage hinzu: Code: var iso:IsoBox;
for(var i:int=1; i<roomy+1; i++)
{
for(var j:int=1; j<roomx+1; j++)
{
iso = new IsoBox();
iso.addEventListener(MouseEvent.CLICK, isoclicked);
iso.setSize(cellSize, cellSize, 1);
iso.styleType = RenderStyleType.SHADED;
iso.fill = new SolidColorFill(0xFFFFFF, 1);
iso.moveBy(j*cellSize, i*cellSize, 1);
iso.name = i + " " + j;
room.roomScene.addChild(iso);
room.roomScene.render();
}
} Code: _core._myself.setSize(cellSize, cellSize, cellSize);
_core._myself.sprites = [prsxplu];
var myselfx:int = 0;
var myselfy:int = 0;
if(roomdoory == -1){
myselfy = 0;
}else{
myselfy = roomdoory + 1;
}
if(roomdoorx == -1){
myselfx = 0;
}else{
myselfx = roomdoorx + 1;
}
_core._myself.moveTo(myselfx * cellSize, myselfy * cellSize, 0);
room.roomScene.render();
room.roomScene.addChild(_core._myself); Wenn ich nun die Reihenfolge der Childs des Stages ausgebe, kommt widererwartens folgende Ausgabe: Code: var count:int = 0;
while(count <= room.roomScene.numChildren)
{
trace(room.roomScene.children[count]);
count++;
} Code: [IsoBox] [IsoBox] [IsoBox] [IsoSprite] [IsoBox] [IsoBox] ... [IsoBox] [IsoBox] [IsoBox] Zudem wird das Objekt wenn ich das Projekt debugge unter allen anderen Objekten angezeigt: ![]() Kann mir da jemand helfen? Danke! Chris. |
| | |
| | #2 (permalink) |
| + Zimt & Zucker Registriert seit: Mar 2006 Ort: hinterm Mond gleich links
Beiträge: 2.041
|
Ich kenne mich mit der as3isolib nicht aus (danke das du das gleich dazu geschrieben hast )ich sehe das Problem in der vermutlich automatisch durchgeführten z-sortierung der Bibliothek: all deine isoBoxen verschiebst du um 1 auf der z achse dein _core._myself dingens bleibt auf 0.
__________________ anbei Grüße vom milchreis: Viva la [Silb] "Selbst wenn uns nur noch der Zynismus treibt, wir werden trotzdem einfach immer weiter gehen!" [Von null auf Flash in einem Klick.] <<< klick |
| | |
| | #3 (permalink) |
| Neuer User Registriert seit: Dec 2010
Beiträge: 18
|
Hallo, danke für deine Antwort und sorry dass ich das nicht vorher gesagt habe. Ich habe jetzt alle möglichen Varianten ausprobiert, per moveBy das Objekt vor alle anderen Objekte zu krigen, jedoch ändert sich nur die Höhe des Objektes. Wie kann ich ein Objekt in einer child-Liste über allen anderen anzeigen? |
| | |
| | #4 (permalink) |
| + Zimt & Zucker Registriert seit: Mar 2006 Ort: hinterm Mond gleich links
Beiträge: 2.041
| ja logisch ändert sich die Höhe, denn das ist ja der Wert, den du änderst.
__________________ anbei Grüße vom milchreis: Viva la [Silb] "Selbst wenn uns nur noch der Zynismus treibt, wir werden trotzdem einfach immer weiter gehen!" [Von null auf Flash in einem Klick.] <<< klick |
| | |
| | #6 (permalink) |
| Keine Panik Registriert seit: Apr 2010 Ort: Düsseldorf (im ernst)
Beiträge: 1.868
|
@PHPChris, scheinbar gibbet grundsätzlich Probleme mit dem Z-Sorting in ISO-Engines das hier hilft dir vielleicht weiter, oder die Sorting-funktion ebenfalls für deine Zwecke umschreiben Issue 10 - as3isolib - depth sorting algorithm not sorting properly in various scenarios - ActionScript 3 Isometric Library - Google Project Hosting |
| | |
| | #7 (permalink) |
| + Zimt & Zucker Registriert seit: Mar 2006 Ort: hinterm Mond gleich links
Beiträge: 2.041
|
Thomas war wieder schneller. Ich hab mir jetzt mal ddiese bibliothek runtergeladen und etwas ruprobiert: PHP-Code: Aber irgendwie habe ich jetzt auf die Schnelle die Transformation in den isometrischen Raum nicht auf die Reihe bekommen. (mal oben links bissel rumklicken) Es wird aber deutlich, das die z Position der Figur, wie oben schon geschrieben, entscheidend für das Ergebnis ist. Wenn du die Höhe der Spielfigur auf einen Wert kleiner 4 änderst kommt Murks raus. Ist auch klar, denn 3dimensional gesehen würden beide Teile dann ineinander stecken. Das lässt sich aber nicht darstellen. Das die isolib dann gerade falsch rum darstellt, ist nicht schön, das stimmt schon. Es gilt also was man irgendwann in der Schule mal gelernt hat: "Wo ein Körper ist, kann kein zweiter sein."
__________________ anbei Grüße vom milchreis: Viva la [Silb] "Selbst wenn uns nur noch der Zynismus treibt, wir werden trotzdem einfach immer weiter gehen!" [Von null auf Flash in einem Klick.] <<< klick |
| | |
| | #8 (permalink) | |
| Keine Panik Registriert seit: Apr 2010 Ort: Düsseldorf (im ernst)
Beiträge: 1.868
|
habs mir nochmal durch den Kopf gehen lassen Zitat:
a verdeckt b und b verdeckt a. (zumindest stellenweise) wie willst du das auflösen? Bei Boxen wirst du das noch "relativ" einfach berechnen können, sobald du dir aber die Schuhe seines verdeckten Männchens anschaust läuft das imho auf Techniken wie Ray-Tracing oder Depth-Buffering in einer 3D-Engine hinaus. @PHPChris mein Tipp wäre, dein Männchen 0.5 Pixel über dem Boden schweben zu lassen. Code: _core._myself.moveTo(myselfx * cellSize, myselfy * cellSize, 1.5); //1 px Bodenfliese + 0.5 px Levitation | |
| | |
| | #9 (permalink) | ||
| + Zimt & Zucker Registriert seit: Mar 2006 Ort: hinterm Mond gleich links
Beiträge: 2.041
| Zitat:
Zitat:
dort scheint soweit alles glatt zu gehen, wenn die z Position gleich der Bodenhöhe ist. (in meinem Fall 5, bei Chris 1) so lange also kein ineinander eindringen statt findet, ist die Idometrie wohl in trockenen Tüchern
__________________ anbei Grüße vom milchreis: Viva la [Silb] "Selbst wenn uns nur noch der Zynismus treibt, wir werden trotzdem einfach immer weiter gehen!" [Von null auf Flash in einem Klick.] <<< klick | ||
| | |
| | #10 (permalink) |
| Neuer User Registriert seit: Dec 2010
Beiträge: 18
|
So! Danke für alle Antworten! Es klapp jetzt einigermassen. Aber: Wenn ich einen Tween benutze tritt der Fehler weiterhin auf: Code: Tweener.addTween(_core._myself, { x:targetX, y:targetY, delay:speed * i , time:speed, transition:"linear" } ); Ich habe es schon mit folgendem probiert: Code: Tweener.addTween(_core._myself, { x:targetX, y:targetY, z:1.5, delay:speed * i , time:speed, transition:"linear" } ); |
| | |
| | #11 (permalink) |
| Keine Panik Registriert seit: Apr 2010 Ort: Düsseldorf (im ernst)
Beiträge: 1.868
|
das die Figur komplett verdeckt ist? wie hast du das mit dem rendern eingerichtet? ENTER_FRAME? dann versuch mal folgendes: PHP-Code: wo genau ist der Registrierungspunkt der Figur? unten? |
| | |
| | #12 (permalink) |
| Neuer User Registriert seit: Dec 2010
Beiträge: 18
|
Du bist mein Mann! Danke für die Hilfe! Hat geholfen xD -Lösung- -> Alle IsoBoxen auf z = 1 setzen -> Das IsoSprite (Die Figur) auf z = 1.5 setzen (Sodass sie schwebt) -> Wenn man einen Tweener benutzt den Loop nicht mit ENTER_FRAME sondern mit EXIT_FRAME verwenden! Code: var isoBox:IsoBox = new IsoBox(); //Eingenschaften isoBox.z = 1; Code: var isoSprite:IsoSprite = new IsoSprite(); //Eigenschaften isoSprite.z = 1.5; Code: stage.addEventListener(Event.EXIT_FRAME, reRender);
function reRender(e:Event):void
{
isoScene.render();
} Chris. Geändert von PHPChris (02-07-2011 um 14:58 Uhr) |
| | |
| | #13 (permalink) |
| + Zimt & Zucker Registriert seit: Mar 2006 Ort: hinterm Mond gleich links
Beiträge: 2.041
|
Jetzt bin ich verwirrt, schließlich sind doch deine IsoBoxen 1 hoch, oder? Wenn man die in eine Höhe von (z Position) 1 setzt, dannn müsste man sich doch, um wirklich über ihnen zu sein, auf z = 2 stellen. Warum sind überhaupt die Boxen auf z = 1? @Thomas, das ist interessant, ich konnte mir bisher nie einen konkreten Anwendungsfall für ExitFrame überlegen.
__________________ anbei Grüße vom milchreis: Viva la [Silb] "Selbst wenn uns nur noch der Zynismus treibt, wir werden trotzdem einfach immer weiter gehen!" [Von null auf Flash in einem Klick.] <<< klick |
| | |
| | #15 (permalink) | |||
| Keine Panik Registriert seit: Apr 2010 Ort: Düsseldorf (im ernst)
Beiträge: 1.868
| Zitat:
Zitat:
Edit: je öfter ich das lese, desto mehr schmeiss ich mich weg ich meinte eigentlich auch, dass die boxen bei z=0 bleiben sollten, damit deren Oberkante bei z: 1 liegt, aber wenn es so für ihn funzt, wieso debattieren? Zitat:
Geändert von thomas_E (02-07-2011 um 18:23 Uhr) | |||
| | |
![]() |
| Lesezeichen |
| Stichworte |
| actionscript, child, children, reihenfolge, sortieren |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| xml sortieren | Waldmensch | ActionScript 3 | 2 | 08-07-2010 21:50 |
| XML sortieren | bruce_wayne | ActionScript 3 | 3 | 29-03-2008 16:42 |
| xml sortieren | chanel | Flash Einsteiger | 8 | 01-11-2006 19:12 |
| Sortieren | Mondo | PHP und MySQL | 8 | 23-01-2004 18:34 |
| MC´s neu sortieren | marcom | ActionScript 1 | 2 | 21-10-2002 15:18 |