Actionscript Code:
// Actor class maken die weer character en enemy als afstammeling heeft
package
{
import flash.display.Sprite;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.events.Event;
import flash.events.IOErrorEvent;
import flash.events.KeyboardEvent;
import flash.events.MouseEvent;
import flash.media.Sound;
import flash.media.SoundChannel;
import flash.net.URLRequest;
import flash.ui.Keyboard;
/**
* ...
* @author marciano
*/
public class MainGame extends Sprite
{
private var _character:Character;
private var _background:Background;
private var _velY:int = 0;
private var _gravity:Number = 7;
private var _jumping:Boolean = true;
private var _level:Level;
private var _startSpel:Boolean = false;
private var _beginSpel:BeginSpel;
private var _beginSchermManager:BeginSchermManager;
// put sounds in Array
private var _levelSound:Sound;
private const WORDS:Array = ["Astronaut", "Spelletje", "Boris", "Super Mario", "Honden Ras"];
private var _words:Words;
private var box:Sprite;
private var _pause:Boolean;
public function MainGame()
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
makeBeginManager();
makeWelcomeScreenButton();
checkBeforeStartingGame();
//stage.align = StageAlign.TOP_LEFT;
//stage.scaleMode = StageScaleMode.NO_SCALE;
}
private function makeBeginManager():void
{
_beginSchermManager = new BeginSchermManager();
addChild(_beginSchermManager);
}
private function makeWelcomeScreenButton():void
{
_beginSpel = new BeginSpel();
addChild(_beginSpel);
}
private function makeSound():void
{
_levelSound = new Sound();
_levelSound.load(new URLRequest("boris.mp3"));
_levelSound.addEventListener(Event.COMPLETE, soundComplete);
}
private function soundComplete(e:Event):void
{
trace("sound loaded!");
}
private function checkBeforeStartingGame():void
{
_beginSpel.buttonMode = true;
_beginSpel.addEventListener(MouseEvent.CLICK, beginnen)
createBackground();
createLevel();
makeCharacter();
makeSound();
makeWords();
}
private function makeWords():void
{
_words = new Words(WORDS);
addChild(_words);
}
private function beginnen(e:MouseEvent):void
{
setCharacterListeners();
_character.visible = true;
_background.visible = true;
_level.visible = true;
_words.visible = true;
_levelSound.play();
}
private function makeCharacter():void
{
_character = new Character();
addChild(_character);
}
private function createLevel():void
{
_level = new Level();
addChild(_level);
}
private function createBackground():void
{
_background = new Background();
addChild(_background);
}
private function setCharacterListeners():void
{
//To do: Zorgen dat deze event listeners nog uit staan als het spel nog niet gestart is.
removeObjects();
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDown, false, 0, false);
stage.addEventListener(KeyboardEvent.KEY_UP, keyUp, false, 0, false);
stage.addEventListener(Event.ENTER_FRAME, characterWalk);
}
private function removeObjects():void
{
removeEventListener(MouseEvent.CLICK, beginnen);
removeChild(_beginSchermManager);
removeChild(_beginSpel);
}
private function pauseGame():void
{
_pause = true;
}
private function keyDown(e:KeyboardEvent):void
{
var key:uint = e.keyCode;
switch (key)
{
case Keyboard.LEFT :
_level.x += 1;
_character.x -= 7;
break;
case Keyboard.RIGHT :
_level.x -= 1;
_character.x += 7;
break;
case Keyboard.UP :
characterJump();
break;
}
if (_character.hitTestObject(_words))
{
createBox();
stage.removeEventListener(KeyboardEvent.KEY_DOWN, keyDown);
stage.removeEventListener(KeyboardEvent.KEY_UP, keyUp);
stage.removeEventListener(Event.ENTER_FRAME, characterWalk);
}
}
private function keyUp(event:KeyboardEvent):void
{
if (event.keyCode == 38 || event.keyCode == 87)
{
_character.y += _gravity;
}
}
private function characterWalk(e:Event):void
{
_velY += _gravity;
_character.y += _velY ;
if(_character.y > 370)
{
_character.y = 370;
_velY = 0;
}
if (_character.x > stage.stageWidth - 70 )
{
_character.x -= 11;
}
if (_character.x < stage.stageWidth - 500 )
{
_character.x += 11;
}
_words.x -= 2;
}
private function characterJump():void
{
if(_velY==0)
{
_velY = -40
}
}
public function createBox():void
{
box = new Sprite();
addChild(box);
box.graphics.beginFill(0xFF0000, .5);
box.graphics.drawRect(100, 100, 350, 200);
box.graphics.endFill();
box.addEventListener(MouseEvent.CLICK, clickAway);
box.buttonMode = true;
}
private function clickAway(e:MouseEvent):void
{
box.visible = false;
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDown, false, 0, false);
stage.addEventListener(KeyboardEvent.KEY_UP, keyUp, false, 0, false);
stage.addEventListener(Event.ENTER_FRAME, characterWalk);
}
}
}
Actionscript Code:
package
{
import flash.display.Sprite;
import flash.events.MouseEvent;
/**
* ...
* @author marciano
*/
public class Words extends Sprite
{
private var _words:Array;
private var _wordHolder:Sprite;
private var _wordsItems:Array;
private var box:Sprite;
public function Words(words:Array)
{
visible = false;
_words = words;
showWords();
}
private function showWords():void
{
var wordItem:WordItem;
_wordHolder = new Sprite();
addChild(_wordHolder);
_wordsItems = [];
for ( var i:int = 0; i < 3; i++)
{
wordItem = new WordItem(_words[i]);
_wordHolder.addChild(wordItem);
wordItem.id = i;
_wordsItems.push(wordItem);
wordItem.x = Math.random () * 900 + 400;
wordItem.y = Math.random () * 225 + 150;
}
}
//public function createBox():void
//{
//box = new Sprite();
//addChild(box);
//
//box.graphics.beginFill(0xFF0000, .5);
//box.graphics.drawRect(100, 100, 350, 200);
//box.graphics.endFill();
//
//box.addEventListener(MouseEvent.CLICK, clickAway);
//box.buttonMode = true;
//
//}
//
//private function clickAway(e:MouseEvent):void
//{
//box.visible = false;
//}
//
}
}
Actionscript Code:
package
{
import flash.display.Sprite;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.text.TextFormat;
/**
* ...
* @author marciano
*/
public class WordItem extends Sprite
{
private var _words:Array;
private var _id:int;
private var _wordSprite:Sprite;
public function WordItem(words:String)
{
//set words before adding it to the stage, else it will complain about getting nothing
_wordSprite = createWords(words);
addChild(_wordSprite);
}
private function createWords(label:String):Sprite
{
var wordField:TextField = new TextField();
var format:TextFormat = new TextFormat ();
var holder:Sprite = new Sprite ();
addChild(holder);
holder.addChild (wordField);
format.size = 18;
format.color = 0xFF0000;
format.font = "Calibri";
wordField.selectable = false;
wordField.autoSize = TextFieldAutoSize.CENTER;
wordField.defaultTextFormat = format;
holder.mouseChildren = false;
wordField.text = label;
// put this below for scaling the holder properly
//holder.graphics.beginFill(0x00FF00, 1);
//holder.graphics.drawRect(0, 0, wordField.width, wordField.height);
//holder.graphics.endFill();
//
trace("wordField.height : " + wordField.height);
return holder;
}
public function get id():int
{
return _id;
}
public function set id(value:int):void
{
_id = value;
}
}
}