Tutorial 4b
Lisää ominaisuuksia maze pelin rakenteluun jatkuu edellisestä 04 :
start nappula
- muokataan koodi startti nappulan painallustapahtumaa edeltävään tilaan:
- animoidut hahmot ei liiku
- pelihahmoa ei voi vielä ohjata näppäimillä
- pelilooppi ei käynnissä
- start nappula luo uusi symboli Button tyyppiä
- annetaan nappulalle oma luokka (PelinAloitusNappi), jotta sitä voidaan kutsua dynaamisesti kirjastosta (linkitys Export for actionscript nappulalla)
- ratkaisukoodia Sokkelo_taso1 luokkaan:
import flash.events.MouseEvent; public function Sokkelo_taso1() var saalisSaldonLukum:int = 0; var pelinaloitusnappi:PelinAloitusNappi; public function Sokkelo_taso1() { addEventListener(Event.ADDED_TO_STAGE, onAddedToStage); } public function aloitaPeli():void { addEventListener(Event.ENTER_FRAME, onEnterFrame); pahisUno.play(); pahisDue.play(); player.aktoivoiHahmo(); } private function onAddedToStage(event:Event):void { //Tapahtumakäsittelijät: //addEventListener(Event.ENTER_FRAME, onEnterFrame); addEventListener(Event.REMOVED_FROM_STAGE, onRemovedFromStage); pahisUno.stop(); pahisDue.stop(); pelinaloitusnappi = new PelinAloitusNappi(); addChild(pelinaloitusnappi); pelinaloitusnappi.x = 200; pelinaloitusnappi.y = 200; pelinaloitusnappi.addEventListener(MouseEvent.CLICK, aloitusNappiaPainettu); } function aloitusNappiaPainettu(event:MouseEvent):void { removeChild(pelinaloitusnappi); stage.focus = this; focusRect = false; aloitaPeli(); } - Player luokkaan lisätään:
public function aktoivoiHahmo():void { addEventListener(Event.ENTER_FRAME, onEnterFrame); } public function pysaytaHahmo():void { removeEventListener(Event.ENTER_FRAME, onEnterFrame); }ja piilotetaan ENTER_FRAME tapahtumankäsittelijän aktivointi onAddedToStage metodista
private function onAddedToStage(event:Event):void { _vx = 0; _vy = 0; _playerHalfWidth = width / 2; _playerHalfHeight = height / 2; _hasKey = false; //Add stage event listeners stage.addEventListener(KeyboardEvent.KEY_DOWN,kunNappaintaPainetaan); stage.addEventListener(KeyboardEvent.KEY_UP,kunNappainVapautetaan); //addEventListener(Event.ENTER_FRAME, onEnterFrame); addEventListener(Event.REMOVED_FROM_STAGE, onRemovedFromStage); } - toinen taso 04c