Tutorial 4
Ohjeistusta maze pelin tehtävien ratkaisuja:
- tehtävä 21 ratkaisu: lisätään seuraavanlaiset koodit Sokkelo_taso1 luokkaan
if (player.hitTestObject(doorKey2)) { player.hasKey2 = true; trace("avain pelaajalla"); player.addChild(doorKey2); doorKey2.x = 10; doorKey2.y = 0; doorKey2.rotation = 300; } if (player.hitTestObject(doorTwo)) { if (player.hasKey2) { if (! doorTwo.isOpen) { doorTwo.isOpen = true; doorKey2.visible = false; player.hasKey2 = false; } } else { Collision.block(player, doorTwo); } }Player luokkaan lisätään: hasKey koodien jälkeen duplikaattikoodia:
private var _hasKey2:Boolean;
_hasKey2 = false;
public function get hasKey2():Boolean { return _hasKey2; } public function set hasKey2(keyState:Boolean) { _hasKey2 = keyState; } -
ratkaisuyritystä kohtaan 22 hahmon tilat : kun //parent.removeChild(this); piilotetaan jää peli pyörimään taustalle ja ehtolause if (health.meter.width < 1) ja se on loputtomasti totta, jolloin peli tuuppaa gameover movieclippiä loputtomiin: tämä blokataan seuraavalla tavalla:testataan myös onko gameover tapahtunut
lisää lihavoitu luokan alkuun
public class Sokkelo_taso1b extends MovieClip { var gameover:Boolean = false;
lisäyksiä gameover tilan testaukseen
if (health.meter.width < 1 && !gameover) { var gameOverLost:GameOver = new GameOver(); gameOverLost.messageDisplay.text = "Game Over" + "\n" + "You Lost!"; parent.addChild(gameOverLost); player.gotoAndStop("hahmokaatui"); gameover = true; pysaytaPeli(); player.pysaytaHahmo(); //parent.removeChild(this); }lisätään Sokkelo_taso1 luokkaan uusi metodi
function pysaytaPeli():void { removeEventListener(Event.ENTER_FRAME, onEnterFrame); }lisätään Player luokkaan
public function pysaytaHahmo ():void { removeEventListener(Event.ENTER_FRAME, onEnterFrame); }hahmo voittotila koodi
if (player.hitTestPoint(exit.x,exit.y,true) && ! gameover) { var gameOverWon:GameOver = new GameOver(); gameOverWon.messageDisplay.text = "Game Over" + "\n" + "You Won!"; parent.addChild(gameOverWon); player.gotoAndStop("voitto"); gameover = true; pysaytaPeli(); player.pysaytaHahmo(); player.stop(); removeChild(exit); //parent.removeChild(this); }