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: 38423
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-2020 v.1.5 | design: diviXdesign & rainbowcolors