Tutorial 4c
Lisää ominaisuuksia maze pelin rakenteluun jatkuu edellisestä 04b :
toinen taso
- starttinappulan ohjaus siirretään SokkeloMain luokkaan (FLA tiedoston luokka: kirjoita SokkeloMain FLA tiedoston luokkakenttään) , ekan tason movieclip:in instanssin nimi taso1
package { import flash.display.MovieClip; import flash.events.MouseEvent; public class SokkeloMain extends MovieClip { var pelinaloitusnappi:PelinAloitusNappi; public function SokkeloMain() { // constructor code init(); } function init():void { pelinaloitusnappi = new PelinAloitusNappi(); addChild(pelinaloitusnappi); pelinaloitusnappi.x = 200; pelinaloitusnappi.y = 200; pelinaloitusnappi.addEventListener(MouseEvent.CLICK, aloitusNappiaPainettu); } function aloitusNappiaPainettu(event:MouseEvent):void { removeChild(pelinaloitusnappi); taso1.aloitaPeli(); } } } - kun peli voitetaan eli gameover won tilassa: taso 1 poistetaan stagelta ja taso 2 tuodaan stagelle
- kopioi tason 2 fla tiedostosta kirjastosta tarvittavat movieclipit (huom! uudelleen nimeä jos tulee samanimi konflikteja)
- kun kopioitaessa tulee Ikkuna: Resolve Library Conflict: valitse viimeinen: Put duplicate items...
- 2 tason luokkanimi pitää vaihtaa
- SokkeloMain luokkaan lisätään lihavoidut:
package { import flash.display.MovieClip; import flash.events.MouseEvent; public class SokkeloMain extends MovieClip { var pelinaloitusnappi:PelinAloitusNappi; var sokkelo_taso2:Sokkelo_taso2; public function SokkeloMain() { // constructor code init(); } function init():void { sokkelo_taso2 = new Sokkelo_taso2(); pelinaloitusnappi = new PelinAloitusNappi(); addChild(pelinaloitusnappi); pelinaloitusnappi.x = 200; pelinaloitusnappi.y = 200; pelinaloitusnappi.addEventListener(MouseEvent.CLICK, aloitusNappiaPainettu); taso1.subscribe(this); } function aloitusNappiaPainettu(event:MouseEvent):void { removeChild(pelinaloitusnappi); taso1.aloitaPeli(); } public function lataaToinenTaso():void { trace("jee"); removeChild(taso1); addChild(sokkelo_taso2); sokkelo_taso2.aloitaPeli() } } } - Sokkelo_taso1 luokkaa editoidaan:
- lisää muuttujan esittely luokan alkuun:
public class Sokkelo_taso1 extends MovieClip { var saalisSaldonLukum:int = 0; var mainController:Object; - gamover ehtolause:
if (player.hitTestPoint(exit.x,exit.y,true)) { var gameOverWon:GameOver=new GameOver(); gameOverWon.messageDisplay.text = "You Won!"; //parent.addChild(gameOverWon); mainController.lataaToinenTaso(); }lisätään uusi metodi Sokkelo_taso1 luokkaan,jota SokkeloMain luokasta kutsutaan
function subscribe(mainController:Object):void { this.mainController = mainController; }
- lisää muuttujan esittely luokan alkuun:
- Sokkelo_taso2 luokassa tarkistus että aloitusnappi koodit on poistettu tai piilossa
//var pelinaloitusnappi:PelinAloitusNappi; /*pelinaloitusnappi = new PelinAloitusNappi(); addChild(pelinaloitusnappi); pelinaloitusnappi.x = 500; pelinaloitusnappi.y = 500; pelinaloitusnappi.addEventListener(MouseEvent.CLICK, aloitusNappiaPainettu);*/ /* function aloitusNappiaPainettu(event:MouseEvent):void { removeChild(pelinaloitusnappi); stage.focus = this; focusRect = false; aloitaPeli(); }*/ - siirrä rivit:
stage.focus = this; focusRect = false;aloitaPeli() metodiin - muutetaan kopioidut duplikaatti movieclipit,käyttämään uusia luokkia esim tason 2 luokkaa Wall2
- luodaan Wall2 ja luokka: (perii Wall luokasta)
package { public class Wall2 extends Wall { } } - jatketaan samalla pelihahmolla 2 tasossa: vaihda pelihahmo mc
- playpausenappi:
- luo movieclip: jossa
kaksi tasoa:
- dynaaminen tekstikenttä
- tausta
- dynaaminen tekstikenttä
- luokkanimi (export for as: PlayPauseNappiMc)
- luokan PlayPauseNappiMc koodi:
package { import flash.display.MovieClip; import flash.events.MouseEvent; public class PlayPauseNappiMc extends MovieClip { public var playpaalla:Boolean; public function PlayPauseNappiMc() { // constructor code stop(); playpaalla = false; addEventListener(MouseEvent.CLICK, nappiaPainettu); } function nappiaPainettu(event:MouseEvent):void { //trace("jeee"); if (!playpaalla) { playpaalla = true; nappiteksti.text = "PAUSE"; } else { playpaalla = false; nappiteksti.text = "PLAY"; } } } } - tuodaan PlayPauseNappiMc.as luokkatiedosto samaan kansioon kuin Maze peli tiedstot
- kopioi PlayPauseNappiMc symboli maze pelin FLA tiedoston kirjastoon
- vaihdetaan SokkeloMain luokassa viittaus PelinAloitusNappi:sta PlayPauseNappiMc luokkaan
var pelinaloitusnappi:PlayPauseNappiMc;konstruktorissa uusi koodi näin:
pelinaloitusnappi = new PlayPauseNappiMc();lisää lihavoidut SokkeloMain luokkaan
function aloitusNappiaPainettu(event:MouseEvent):void { removeChild(pelinaloitusnappi); addChild(taso1); //setChildIndex(taso1,0); taso1.x = -2; taso1.y = -2; taso1.aloitaPeli(); addChild(pelinaloitusnappi); pelinaloitusnappi.x= 10; pelinaloitusnappi.y= 570; pelinaloitusnappi.width = 70; pelinaloitusnappi.height = 30; }
- luo movieclip: jossa
kaksi tasoa: