| |||||||
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) |
| Notorischer Raser Registriert seit: May 2003 Ort: Heinsberg
Beiträge: 83
|
Hi, wie gehe ich am besten eine Linien Kolision an? Ich habe auf der Bühne mit AS mehrere Linien gezeichnet Ich möchte nun prüfen ob sich die Linien überschneiden. Ich hab es mit einen onEnterFrame versucht: ActionScript:
Also quasi für alle Linien ausser der zu prüfende einen hitTest machen, das funktioniert aber nicht wirklich. Wenn die Linie eine Kurve ist , dann ist der MC der Linie ja breiter (wegen yMax, xMax, ... der MC bildet ja immer ein Rechteck ? Wie könnte man es am besten angehen so eine Kolisionsabfrage zu machen ? Danke
__________________ gruss Petter K. |
| | |
| | #3 (permalink) |
| muh Registriert seit: Apr 2002 Ort: Freiburg / Stuttgart
Beiträge: 4.338
|
jup genau. Man kann keine 2 MCs auf einen exacten Hit überprüfen, dabei werden immer nur die Boxen geprüft. Wenn du es exact haben willst, musst du es mit Koordinaten mache: ActionScript:
|
| | |
| | #4 (permalink) | |
| Notorischer Raser Registriert seit: May 2003 Ort: Heinsberg
Beiträge: 83
| Zitat:
Das muss man wohl irgendwie mathematisch berechnen ? Nur wie
__________________ gruss Petter K. | |
| | |
| | #7 (permalink) |
| lounger one Registriert seit: Jul 2002 Ort: Kassel
Beiträge: 556
|
Also nur mal eine Theorie: wenn du die Linien dynamisch erstellt müsste es gehen, denn du hast dann ja Verfügung über die einzelnen Punkte deiner kurven! ... is nur so ne Idee, weil so wie du es bis jetzt gemacht hast wüsste ich keinen Löusungsansatz! Das Einzige was gehen würde wäre was mit hittest des Objektes mit allen x,y Koordinaten deiner Bühne und die Treffer müsstest du dann wieder mit dem zweiten Clip vergleichen (bzw bei dem zweiten clip wieder die gleiche Prozedur und die Treffer dann mit den Trefdern aus clip eins vergleichen)! geht sicher auch einfacher aber das wäre das Einzige was mir dazu einfällt! Vielleicht kann man auch die Abfrage der "pixelhits" über die Bounding Box machen dann müsste man nicht die Bühne komplett abfragen... trotzallem sehr aufwendig und Leistungs beanspruchend! Geändert von linkage (22-05-2004 um 10:24 Uhr) |
| | |
| | #8 (permalink) | |
| Notorischer Raser Registriert seit: May 2003 Ort: Heinsberg
Beiträge: 83
| Zitat:
Ich versuche das jetzt aber ersteinmal mit einen festen radius , mal gucken ob das irgendwie klappt, schu mich gerade mal ein bsichen um was es da für Mathe Formeln für die berechnung gibt.
__________________ gruss Petter K. | |
| | |
| | #9 (permalink) |
| lounger one Registriert seit: Jul 2002 Ort: Kassel
Beiträge: 556
|
Also der zuletz beschrieben ANsatz um die Pixeltreffer auszuwerten ist eindeutig zu system belastend! ;-) ActionScript:
naja war ja nur mal eine Idee! ich würde mal bei Google nach geometrischen Gleichsetzungen suchen oder so, da müsstest du was finden. Abi ist bei mir zulang her als das ich mich da noch an was erinnern könnte! ;-) |
| | |
| | #10 (permalink) |
| Neuer User Registriert seit: Aug 2003 Ort: Rüsselsheim
Beiträge: 59
|
Ich hab da jetzt mal bissie rumprobiert, es geht mit hitTest(_x,_y,true) dumm ist nur das es nur einmal geht !!! d.h wenn die linien sich getroffen haben lass ich den kurven MC wieder an seinen ausgangsort zurückkehren und wieder in richtung gerade bewegen, dann allerdings is nixmehr mit hittest. so als ob er das nach einmaligem geschehen nichtmehr überprüft. keine ahnung warum. Ich häng mal die fla mit an. |
| | |
| | #11 (permalink) |
| lounger one Registriert seit: Jul 2002 Ort: Kassel
Beiträge: 556
|
hallo, bei deinem beispiel findet auch nur genau ein hittest statt! denn du vergleichst ja nur einen Punkt mit dem objekt! ActionScript:
so kannst du feststellen da er nur! einmal eine berührung hat da du ja den stehenden punkt von s1 mit der bewegenden Linie s2 vergleichst! da beide eine Linienstärke von einem pixel haben, kann das nicht mehr ergeben! s1._x liefert dir nur einen Punkt und nicht alle x werte des objektes, die müsstest du dann schon ausrechnen (mit _x und width) und dann alle Punkte angeben was wieder zu seiner system crashenden schleife führen würde... denke ich! |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |