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.KeyboardEvent;
import flash.events.MouseEvent;
import flash.media.Sound;
import flash.media.SoundChannel;
import flash.net.URLRequest;
import flash.ui.Keyboard;
/**
* ...
* @author
*/
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;
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, _character);
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 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;
}
}
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;
var hitWords:Array = _words.getWordsTouchingObject(_character);
if (hitWords.length > 0)
{
createBox();
stage.removeEventListener(KeyboardEvent.KEY_DOWN, keyDown);
stage.removeEventListener(KeyboardEvent.KEY_UP, keyUp);
stage.removeEventListener(Event.ENTER_FRAME, characterWalk);
_words.removeWords(hitWords);
}
}
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:
// create collision with character here
// create if statements with ID's per word to check what word the char is hitting
package
{
import flash.display.Sprite;
/**
* ...
* @author marciano
*/
public class Words extends Sprite
{
private var _words:Array;
private var _wordsItems:Array;
private var _character:Character;
private var _hitwords:Array;
public function Words(words:Array, character:Character)
{
visible = false;
_words = words;
_character = character;
showWords();
}
private function showWords():void
{
var wordItem:WordItem;
_wordsItems = [];
for ( var i:int = 0; i < 3; i++)
{
wordItem = new WordItem(_words[i]);
addChild(wordItem);
wordItem.id = i;
_wordsItems.push(wordItem);
wordItem.x = Math.random () * 900 + 400;
wordItem.y = Math.random () * 225 + 150;
}
}
public function getWordsTouchingObject(char:Character):Array
{
_hitwords = []; //we'll return this at the end.
for (var i:int = 0; i < _words.length; i++)
{
var wordItem:WordItem = new WordItem(_words[i]);
_hitwords.push(wordItem);
}
return _hitwords;
}
public function removeWords(toRemove:Array):void
{
var wordItem:WordItem;
for (var i:int = 0; i < toRemove.length; i++)
{
wordItem = toRemove[i];
removeChild(wordItem);
}
var pos:int = _words.indexOf(wordItem);
if (pos != -1)
{ //we found it somewhere
_words.splice(pos, 1);
}
}
}
}