Flash-peliohjelmointi tutorial 4b

 

Tutorial 4b

 

Lisää ominaisuuksia maze pelin rakenteluun jatkuu edellisestä 04 :

 

start nappula

  1. muokataan koodi startti nappulan painallustapahtumaa edeltävään tilaan:
    1. animoidut hahmot ei liiku
    2. pelihahmoa ei voi vielä ohjata näppäimillä
    3. pelilooppi ei käynnissä
  2. start nappula luo uusi symboli Button tyyppiä
    1. annetaan nappulalle oma luokka (PelinAloitusNappi), jotta sitä voidaan kutsua dynaamisesti kirjastosta (linkitys Export for actionscript nappulalla)
  3. 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();
    		}
            
            
  4. 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);
    		}
            
  5. toinen taso 04c