| |||||||
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) |
| AS3Transformator Registriert seit: Jun 2007
Beiträge: 50
|
Hallo liebe Flash'ler ![]() Einige von euch haben bestimmt schon mal Warcraft 3 TFT TD (Tower Defense) Map gespielt, in denen es darum geht das man anlaufende Gegnergruppen die einen speziellen weg ablaufen, mit festinstallierten Türmen besiegt. Nun will ich das gleiche in Flash machen, das funktioniert bis auf eine sehr wichtige Sache auch schon recht gut. Und zwar, wie soll ich die htTest abfrage machen sodass beide Objekte, die kollidieren wissen welches Objekt das andere ist? Zuerst dachte ich, ok einfach hitTest abfrage in jeden Gegner und Turm rein, mit for schleife durchlaufen lassen, das funktioniert auch jedoch ist das logischer-weiße sehr Performance fressend. Deswegen hab ich die Sache so gelöst das ich die Schuss-Reichweite der Türme und die Gegner in jeweils 2 verschiedene Ebenen setze und dann nur noch die Ebenen "hitTeste", gut das funktioniert auch jedoch weiß man nun nicht mehr welcher Turm welche Einheit berührt und anderst herum. Weiß jemand wie ich dieses Problem lösen kann ohne zuviel performance fresser zu haben, denn später kommen ja immer mehr Türme hinzu die man bauen kann und natürlich auch mehr Gegner und Extras, die alle performance kosten werden. Vielen Dank im Voraus em3L eLem3ntx
__________________ Lantian Design - Play Defend the Village, watch great Movies and much more Geändert von eLem3ntx (10-01-2008 um 19:39 Uhr) Grund: Besserer Threadname ;) |
| | |
| | #2 (permalink) |
| ewig Neuer User Registriert seit: Jun 2003
Beiträge: 423
|
Hallo, Du könntest ein dynamisches Array beim hittest befüllen und dann hast Du die MC die sich gerade berühren. salü
__________________ http://www.a-d-k.de/ nicht gucken! |
| | |
| | #3 (permalink) |
| AS3Transformator Registriert seit: Jun 2007
Beiträge: 50
|
Hmm, ok aber wie frage ich über eine hitTest abfrage ein Array aus? Sorry aber mit Arrays und hitTests in Kombination hatte ich noch nicht viel Erfahrung.
__________________ Lantian Design - Play Defend the Village, watch great Movies and much more |
| | |
| | #4 (permalink) |
| ewig Neuer User Registriert seit: Jun 2003
Beiträge: 423
|
Hallo, ja mit hittest ist viellicht blöd, evtl eine andere Idee: 1. Du erstellst Dir eine 2Dimensionales Array* was Dein Spielfeld repräsentiert 2. Array wird ge"null"t 3. Jede Einheit trägt sich in dem Array ein davor guckt jede Einheit ob schon ein Eintrag existiert -> getroffen 4. Jede Einheit merk sich seinen letzen Eintrag 5. Jede Einheit geht ein Stück weiter, löscht letzten Eintrag -> 3. *Das Array muss ja nicht so groß sein wie Dein Spielfelt evtl. reich pro 10Pixel ein Arrayeintrag. Ein hittest-Aktion habe ich mal hier gemacht. Das waren aber nur zwei Objekte einmal das Frauel und einmal eine unsichtbarer Movieclip in dem die verbotenen Zonen eingezeichnet waren (Häuser, Teich,...) da konnte ich gut mit hittest arbeiten. Aber wenn es mehrer sich bewegende Objekte sind funktioniert das nicht mehr... Da ist o.g. Idee mit einem Array (oder Treffermap) besser. salü
__________________ http://www.a-d-k.de/ nicht gucken! |
| | |
| | #5 (permalink) |
| AS3Transformator Registriert seit: Jun 2007
Beiträge: 50
|
Hmm ok erstmal sorry das ich so spät antworte, hatte aber viel zu tun. Nun das mit dem Array, ist irgendwie, ich sag mal "unverständlich" (nicht böse gemeint, aber ich wüsste jetzt nicht genau wie ich das machen sollte...)Und eine andere Methode gibt es nicht? Außer die Treffermap - Methode die du nanntest (das wäre ja mit der hitTest abfrage auf einer Ebene oder?) Vtl. ist es möglich die Koordinaten zu bestimmen, was am nähesten am Schuss dran ist und somit das Objekt aufspüren kann welches abgeschossen wird oder welches schießt...?
__________________ Lantian Design - Play Defend the Village, watch great Movies and much more |
| | |
| | #6 (permalink) | |
| ewig Neuer User Registriert seit: Jun 2003
Beiträge: 423
|
Hallo, Zitat:
nun machst Du einen Hittest der Bewegenden Objekte auf diese Ebene. Wenn ein Hittest auftritt gehst Du alle Türme durch und suchst den nächsten/errechnest den Abstand, der Turm mit den geringsten Abstand ist dann der Turm der das bewegte Objekt beschießen kann. vielleicht gibt es noch was anderes aber mehr als ein Array oder ne Map fällt mir jetzt nicht ein. evtl findes Du noch was wenn Du nach "Kollisionserkennung" suchst. (http://livedocs.adobe.com/flash/9.0_...=00000246.html) salü
__________________ http://www.a-d-k.de/ nicht gucken! | |
| | |
| | #7 (permalink) |
| AS3Transformator Registriert seit: Jun 2007
Beiträge: 50
|
Ok vielen Dank auf jeden Fall erst mal ![]() Doch nun hätte ich noch ein paar Performance-errechnungs-fragen ob es vtl. gar nicht soviel aus macht wenn man die hitTests in eine Schleife legt. Die Stage ist 700x500 px also größer als ein sonst gewöhnliches Flashgame nun wird es pro Runde immer max ca. ~ 25-40 Einheiten geben die an den max ca. ~ 3-6 Türmen vorbeilaufen, nun was würdet ihr mir empfehlen? Könnte man mit einer Schleife die den hitTest beinhaltet noch ohne Laggs klar kommen? Falls nicht wäre es besser das von dir (loetmann) genannte Array verfahren zu nehmen oder das mit der Errechnung des nächste Turms? Denn ich denke es gibt weitaus kompliziertere Flashgames wie dieses, was zur Folge hätte, das es möglich sein muss. Vielen Dank, em3L eLem3ntx
__________________ Lantian Design - Play Defend the Village, watch great Movies and much more |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |