Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 10-01-2008, 12:22   #1 (permalink)
AS3Transformator
 
Benutzerbild von eLem3ntx
 
Registriert seit: Jun 2007
Beiträge: 50
Question hitTest Abfrage zweier Objekte, wie lösen?...

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 ;)
eLem3ntx ist offline   Mit Zitat antworten
Alt 11-01-2008, 15:58   #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!
loetmann ist offline   Mit Zitat antworten
Alt 13-01-2008, 19:20   #3 (permalink)
AS3Transformator
 
Benutzerbild von eLem3ntx
 
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
eLem3ntx ist offline   Mit Zitat antworten
Alt 14-01-2008, 14:08   #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!
loetmann ist offline   Mit Zitat antworten
Alt 22-01-2008, 14:56   #5 (permalink)
AS3Transformator
 
Benutzerbild von eLem3ntx
 
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
eLem3ntx ist offline   Mit Zitat antworten
Alt 23-01-2008, 13:08   #6 (permalink)
ewig Neuer User
 
Registriert seit: Jun 2003
Beiträge: 423
Hallo,

Zitat:
Zitat von eLem3ntx Beitrag anzeigen
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?)
genau du Malst eine Eben und zeichnest dort die Türme ein (siehe Bild)
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ü
Angehängte Grafiken
Dateityp: gif hitest.gif (2,2 KB, 12x aufgerufen)
__________________
http://www.a-d-k.de/ nicht gucken!
loetmann ist offline   Mit Zitat antworten
Alt 23-01-2008, 13:21   #7 (permalink)
AS3Transformator
 
Benutzerbild von eLem3ntx
 
Registriert seit: Jun 2007
Beiträge: 50
Question

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
eLem3ntx 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 16:17 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele