Avatar billede Shasim Novice
12. juni 2006 - 09:09 Der er 3 kommentarer og
1 løsning

Advanced collisiontest

For at omgå nogle problemer med brug af hitTest har jeg fundet en anden metode på: http://www.kirupa.com/developer/actionscript/advanced_collision.htm, som kort beskrevet går ud på at "optegne" et hitområde (perimeter) med en masse små klip, og så teste for om et trukket klip rammer xy på nogle af de små klip i hitområdet.
Det virker nogenlunde, men ind i mellem kan jeg alligevel placere et klip ovenpå uden at der bliver registreret et sammenstød. Det er selvfølgeligt ikke godt nok.
for (i in _root.perimeter) {
    trace("tjekker");
    point = new Object();
    point.x = _root.perimeter[i]._x;
    point.y = _root.perimeter[i]._y;
    _root.perimeter.localToGlobal(point);
    trace("y"+point.y);
    trace("x"+point.x);
    if (_root.mittrukneklip.hitTest(point.x, point.y, true)) {
    hit = true;
    trace("kollision : true");
        }
    }

mine traces giver alle xy-værdierne på objekterne i perimeter, men inden da får jeg "undefined" ved 24 objekter!? Og det er uanset om jeg laver det sådan, at der kun er 2 små klip i perimeter. Hvor kommer disse værdier fra, og kan de være årsagen til at det ikke går godt med kollisionstjekket hver gang?

Håber der er bid denne gang :)
Avatar billede barklund Nybegynder
12. juni 2006 - 09:47 #1
Årsagen er, at der ikke først testes for, om _root.perimeter[i] er et MovieClip:

for (i in _root.perimeter) {
    if (_root.perimeter[i] instanceof MovieClip) continue;
    trace("tjekker");
    ...

Det løser dog ikke dit problem, som bedst ved at finde en funktion eller anden forskrift på matematisk vis, som beskriver din kant på begge objekter og som så kan testes for overlap. For eksempel er det nemt ved to cirkler, hvilket ville være meget besværligt med ovenstående punkt-metode.
Avatar billede Shasim Novice
12. juni 2006 - 09:57 #2
Hvis du har tid og lyst - kunne du så ikke prøve at kigge på mit sidste spørgsmål, som egentligt er årsagen til at jeg er havnet i det her?
http://www.eksperten.dk/spm/713784

Jeg kan godt forsøge at forklare det bedre hvis du vil. På forhånd tak:)
Avatar billede Shasim Novice
12. juni 2006 - 10:15 #3
Her har jeg også forsøgt at spørge: http://www.flashfaq.dk/spg.asp?ID=2271..... :)
Ved ikke om det er bedre beskrevet dér.
Vil/kan du hjælpe?
Avatar billede Shasim Novice
13. juni 2006 - 11:15 #4
Lukker...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester