Loading:

Książka Zend Framework 3. Poradnik Programisty.

Efekt poruszania się statku kosmicznego za pomocą strzałek - ActionScript 3

Skrypt tworzy obiekt, który zaczyna się poruszać z prędkością wzsrastającą, siła przyspieszanie zależy od ilości naciśnięcia klawisza strzałki.

 

Przykład posiada również wbudowaną jednak nie aktywną grawitację, aktywowacj ją można po przez usunięciue ukośników przed dwoma liniami.

 

Piłka porusza się względem osi X oraz Y, technika ta jest spotykana w większości gier FLASH.

 

Wersja On-line:

 



Napisz Artykuł

Listing

//Kod pliku Przyspieszenie.as

package
{
        import flash.display.Sprite;
        import flash.events.Event;
        import flash.events.KeyboardEvent;
        import flash.ui.Keyboard;
       
        public class Przyspieszenie extends Sprite
        {
                private var ball:Ball;
                private var vx:Number = 0;
                private var vy:Number = 0;
                private var ax:Number = 0;
                private var ay:Number = 0;
                private var gravity:Number = 0.1;
               
                public function Przyspieszenie()
                {
                        init();
                }
               
                private function init():void
                {
                        pilka = new Pilka();
                        addChild(pilka);
                        pilka.x = stage.stageWidth / 2;
                        pilka.y = stage.stageHeight / 2;
                        addEventListener(Event.ENTER_FRAME, onEnterFrame);
                        stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);
                        stage.addEventListener(KeyboardEvent.KEY_UP, onKeyUp);
                }
               
                private function onKeyDown(event:KeyboardEvent):void
                {
                        switch(event.keyCode)
                        {
                                case Keyboard.LEFT :
                                ax = -0.2;
                                break;
                               
                                case Keyboard.RIGHT :
                                ax = 0.2;
                                break;
                               
                                case Keyboard.UP :
                                ay = -0.2;
                                break;
                               
                                case Keyboard.DOWN :
                                ay = 0.2;
                                break;
                               
                                default :
                                break;
                        }
                }
               
                private function onKeyUp(event:KeyboardEvent):void
                {
                        ax = 0;
                        ay = 0;
                }
               
                private function onEnterFrame(event:Event):void
                {
                        vx += ax;
                        vy += ay;
                        //vy += gravity;
                        pilka.x += vx;
                        pilka.y += vy;
                }
        }
}


//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();
                }
        }
}


Ten wpis posiada swój wątek na forum

Wszystkie pytania prosimy kierować właśnie tam ponieważ komentarze to miejsce na poprawki do kodu lub alternatywne rozwiązania i pytania nie będą publikowane

http://forum.funkcje.net/forum/viewtopic.php?f=12&t=4174

Dane do logowania na forum są takie same jak na funkcje.net



Dodano przez: divix
Ranga: Administrator serwisu Punktów: 37169
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-17 v.1.5 | design: diviXdesign & rainbowcolors