Loading:


    Wykrywanie kolizji pomiędzy obiektami za pomocą hitTestObject w ActionScript 3

    Przykład ukazuje wykrywanie kolizji za pomocą wbudowanej metody hitTestObject.

     

    Należy zauważyć, że kolizja jest wykrywana tylko dla obszarów kwadratowych.

     

    Wersja On-line:

     



    Napisz Artyku³

    Listing

    //Kod dla pliku Wykrywanie_kolizji.as

    package
    {
            import flash.display.Sprite;
            import flash.events.Event;
            import flash.text.TextField;
            import flash.text.TextFieldType;
           
            public class Wykrywanie_kolizji extends Sprite
            {
                    private var pilka1:Pilka;
                    private var pilka2:Pilka;
                    private var licznik:uint = 1;
                    var tekst:TextField = new TextField();
                   
                    public function Wykrywanie_kolizji()
                    {
                            init();
                    }
                   
                    private function init():void
                    {
                            addChild(tekst);
                            tekst.x = 100;
                            tekst.y = 10;
                            tekst.width = 150;
                           
                            pilka1 = new Pilka();
                            addChild(pilka1);
                            pilka1.x = stage.stageWidth / 2;
                            pilka1.y = stage.stageHeight / 2;
                           
                            pilka2 = new Pilka();
                            addChild(pilka2);
                            pilka2.startDrag(true);
                           
                            addEventListener(Event.ENTER_FRAME, onEnterFrame);                     
                    }
                   
                    private function onEnterFrame(event:Event):void
                    {
                            if(pilka1.hitTestObject(pilka2))
                            {
                                    tekst.text="kolizja numer: "+licznik;
                                    licznik++;
                            }
                    }
            }
    }


    //Kod dla pliku Pilka.as

    package {
            import flash.display.Sprite;
           
            public class Pilka extends Sprite {
                    private var promien:Number;
                    private var kolor:uint;
                   
                    public function Pilka(promien:Number=40, kolor:uint=0xff0000) {
                            this.promien = promien;
                            this.kolor = kolor;
                            init();
                    }
                   
                    public function init():void {
                            graphics.beginFill(kolor);
                            graphics.drawCircle(0,0, promien);
                            graphics.endFill();
                    }
            }
    }




    Dodano przez: divix
    Ranga: Administrator serwisu Punktów: 0
    Komentarze użytkowników
      • Tre¶æ komentarza
        Kod do komentarza (opcjonalnie)
        PHP JavaScript MySQL Smarty SQL HTML CSS ActionScript
        Autor
        Token
        token

         

         








    funkcje.net
    Wszelkie prawa zastrzeżone©. | Funkcje.net 2008-2025 v.1.5 | design: diviXdesign & rainbowcolors