Anzeige

[AS3] einfache Kollisionsabfrage funktioniert nicht

[AS3] - einfache Kollisionsabfrage funktioniert nicht | PSD-Tutorials.de

Erstellt von Vektorenschubser, 19.07.2010.

  1. Vektorenschubser

    Vektorenschubser Noch nicht viel geschrieben

    Dabei seit:
    19.07.2010
    Beiträge:
    20
    Geschlecht:
    männlich
    einfache Kollisionsabfrage funktioniert nicht
    moin leute ;D

    also will mich grade in as3 einarbeiten und stoße schon auf das erste kleine große problem.

    der mauszeiger wird durch einen pfeil ersetzt(feil).
    auf der bühne ist ein weiterer movieclip (ziel).

    wenn der pfeil mit irgendeiner kante das ziel berürt, so soll es die farbe ändern, das machts aber natürlich nicht :schmoll: , sondern erst wenn ich mit den mauszeiger mittig über dem ziel bin.

    woran liegts ??






    Code (Text):
    1.  
    2. var orig:ColorTransform = ziel.transform.colorTransform;
    3. var neww:ColorTransform = new ColorTransform(1, 1, 1, 1, -255, 0, 255, 0);
    4.  
    5.  
    6. Mouse.hide();
    7.  
    8.  
    9.  function frames (e:Event)
    10. {
    11. feil.x = mouseX;
    12. feil.y = mouseY;
    13. if (ziel.hitTestPoint(mouseX, mouseY, true))
    14. {
    15. ziel.transform.colorTransform = neww;
    16. }
    17. else
    18. {
    19. ziel.transform.colorTransform = orig;
    20. }
    21.  
    22.  
    23. }
    24.  
    25. stage.addEventListener(Event.ENTER_FRAME, frames);
    26.  
    27.  
     
    #1      
  2. ssandner

    ssandner Nicht mehr Newbie

    Dabei seit:
    21.02.2006
    Beiträge:
    410
    Geschlecht:
    männlich
    Ort:
    Hermannsburg
    Software:
    CS4 Production Premium/CS6 Production Premium
    einfache Kollisionsabfrage funktioniert nicht
    AW: einfache Kollisionsabfrage funktioniert nicht

    Mit deiner "feil.x" Abfrage bekommst du nur ein Event, wenn dein Mauszeiger über dem referenzpunkt deines zielmovieclips liegt. (in deinem Fall der Mittelpunkt des ziel.mc).
    Für deinen Zwecke kannst du die Methode "hitTestObject()" benutzen:

    http://livedocs.adobe.com/flash/9.0...sh/display/DisplayObject.html#hitTestObject()

    Allerdings wird dabei ein Rechteck über dein kreisförmiges Ziel gelegt, d.h. die Zielfläche ist etwas größer als dein Kreis.
    Ein exakte Lösung habe ich hier gefunden:
    [AS3][Anfänger] Weltraumspiel Teil 5: Kollisionen, Timer und Textfelder - Flash - Tutorials @ tutorials.de: Forum & Hilfe
     
    #2      
x
×
×