Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package
- {
- import Characters.FireBoy;
- import Characters.WaterGirl;
- import flash.display.Bitmap;
- import flash.display.DisplayObject;
- import flash.display.Sprite;
- import flash.events.Event;
- import flash.events.KeyboardEvent;
- import Map.Level;
- import Platforms.Platform;
- /**
- * ...
- * @author Andrew Dean
- */
- public class Main extends Sprite
- {
- //adding background image
- [Embed(source="Assets/Background2.jpg")]
- public var BackGround:Class;
- var picture:Bitmap = new BackGround();
- //adding characters as vars
- public var FireHero:FireBoy
- public var WaterHero:WaterGirl
- //Fire boy movement
- public var leftKeyDown:Boolean = false;
- public var rightKeyDown:Boolean = false;
- //watergirl movement
- public var aKeyDown:Boolean = false;
- public var dKeyDown:Boolean = false;
- //jumping
- public var upKeyDown:Boolean = false;
- public var wKeyDown:Boolean = false;
- //fireboy math
- public var FireJumping:Boolean = false;
- public var FireJumpSpeedLimit:int = 15;
- public var FireJumpSpeed:Number = FireJumpSpeedLimit;
- public var FireOnGround = false;
- //watergirl math
- public var WaterJumping:Boolean = false;
- public var WaterJumpSpeedLimit:int = 15;
- public var WaterJumpSpeed:Number = WaterJumpSpeedLimit;
- public var WaterOnGround = false;
- //FireBoy barrier
- public var FireLeftBarrier:Boolean = false;
- public var FireRightBarrier:Boolean = false;
- //watergrl barrier
- public var WaterLeftBarrier:Boolean = false;
- public var WaterRightBarrier:Boolean = false;
- //adding level map as var
- public var levelDesign:Level;
- public function Main():void
- {
- if (stage) init();
- else addEventListener(Event.ADDED_TO_STAGE, init);
- }
- private function init(e:Event = null):void
- {
- removeEventListener(Event.ADDED_TO_STAGE, init);
- // entry point
- //adding background
- stage.addChild(picture);
- //adding level/platforms
- levelDesign = new Level();
- stage.addChild(levelDesign);
- //adding fireboy
- FireHero = new FireBoy();
- FireHero.x = 50
- FireHero.y = 550
- stage.addChild(FireHero);
- //adding watergirl
- WaterHero = new WaterGirl();
- WaterHero.x = 60
- WaterHero.y = 550
- stage.addChild(WaterHero);
- //adding event listeners for when charcters are in the frame
- WaterHero.addEventListener(Event.ENTER_FRAME, WaterMove);
- FireHero.addEventListener(Event.ENTER_FRAME, FireMove);
- //adding keyboard listeners
- stage.addEventListener(KeyboardEvent.KEY_DOWN, checkKeysDown);
- stage.addEventListener(KeyboardEvent.KEY_UP, checkKeysUp);
- }
- public function FireMove(event:Event):void
- {
- //move the character based on which keys are down
- //fireboy
- if (leftKeyDown && !FireLeftBarrier)
- {
- FireHero.x = FireHero.x - 5;
- }
- if (rightKeyDown && !FireRightBarrier)
- {
- FireHero.x = FireHero.x + 5;
- }
- if (upKeyDown || FireJumping)
- {
- FireJump();
- }
- for ( var i:int = 0;i<levelDesign.platformHolder.numChildren; i++)
- {
- //current platform
- var hitplatform:DisplayObject = levelDesign.platformHolder.getChildAt(i);
- //checking hit test
- if (FireHero.hitTestObject(hitplatform) && FireHero.y < hitplatform.y)
- {
- if (FireHero.hitTestObject(hitplatform) && FireHero.x < hitplatform.x + hitplatform.width)
- {
- FireLeftBarrier = true;
- FireHero.x = FireHero.x + 1;
- break;
- }
- FireOnGround = true;
- break;
- }
- FireOnGround = false;
- FireLeftBarrier = false;
- }
- if (!FireOnGround)
- {
- FireJumping = true;
- }
- }
- public function WaterMove(event:Event):void{
- {
- //move the character based on which keys are down
- //watergirl
- if (aKeyDown && !WaterLeftBarrier)
- {
- WaterHero.x = WaterHero.x - 5;
- }
- if (dKeyDown && !WaterRightBarrier)
- {
- WaterHero.x = WaterHero.x + 5;
- }
- if (wKeyDown || WaterJumping)
- {
- WaterJump();
- }
- for ( var i:int = 0;i<levelDesign.platformHolder.numChildren; i++)
- {
- //current platform
- var hitplatform:DisplayObject = levelDesign.platformHolder.getChildAt(i);
- //checking hit test
- if (WaterHero.hitTestObject(hitplatform) && WaterHero.y < hitplatform.y)
- {
- WaterOnGround = true;
- break;
- }
- WaterOnGround = false;
- }
- if (!WaterOnGround)
- {
- WaterJumping = true;
- }
- }
- }
- public function checkKeysDown (event:KeyboardEvent):void {
- //fireboy
- //left
- if (event.keyCode == 37)
- {
- leftKeyDown = true;
- }
- //right
- if (event.keyCode == 39)
- {
- rightKeyDown = true;
- }
- //jumping
- if (event.keyCode == 38)
- {
- upKeyDown = true;
- }
- //watergirl
- //left
- if (event.keyCode == 65)
- {
- aKeyDown = true;
- }
- //right
- if (event.keyCode == 68)
- {
- dKeyDown = true;
- }
- //jumping
- if (event.keyCode == 87)
- {
- wKeyDown = true;
- }
- }
- public function checkKeysUp(event:KeyboardEvent):void {
- //fireboy
- if (event.keyCode == 37)
- {
- leftKeyDown = false;
- }
- if (event.keyCode == 39)
- {
- rightKeyDown = false;
- }
- if (event.keyCode == 38)
- {
- upKeyDown = false;
- }
- //watergirl
- if (event.keyCode == 65)
- {
- aKeyDown = false;
- }
- if (event.keyCode == 68)
- {
- dKeyDown = false;
- }
- if (event.keyCode == 87)
- {
- wKeyDown = false;
- }
- }
- public function FireJump():void
- {
- if (!FireJumping)
- {
- FireJumping = true;
- FireJumpSpeed = FireJumpSpeedLimit * -1;
- FireHero.y += FireJumpSpeed;
- }
- else
- {
- if (FireJumpSpeed < 0)
- {
- FireJumpSpeed *= 1 - FireJumpSpeedLimit / 125;
- if (FireJumpSpeed > - FireJumpSpeedLimit / 5)
- {
- FireJumpSpeed *= -1;
- }
- }
- if (FireJumpSpeed > 0 && FireJumpSpeed <= FireJumpSpeedLimit)
- {
- FireJumpSpeed *= 1 + FireJumpSpeedLimit / 50;
- }
- FireHero.y += FireJumpSpeed;
- //platform hit
- for (var i:int = 0; i < levelDesign.platformHolder.numChildren; i++)
- {
- var hitplatform:Platform = Platform(levelDesign.platformHolder.getChildAt(i));
- if (FireHero.hitTestObject(hitplatform))
- {
- if ( FireJumpSpeed > 0)
- {
- FireOnGround = false;
- FireJumping = false;
- FireHero.y = hitplatform.y - FireHero.height;
- break;
- }
- else
- {
- FireJumpSpeed = Math.abs(FireJumpSpeed);
- FireHero.y = hitplatform.y + hitplatform.height + 1;
- }
- }
- }
- }
- }
- public function WaterJump():void
- {
- if (!WaterJumping)
- {
- WaterJumping = true;
- WaterJumpSpeed = WaterJumpSpeedLimit * -1;
- WaterHero.y += WaterJumpSpeed;
- }
- else
- {
- if (WaterJumpSpeed < 0)
- {
- WaterJumpSpeed *= 1 - WaterJumpSpeedLimit / 125;
- if (WaterJumpSpeed > - WaterJumpSpeedLimit / 5)
- {
- WaterJumpSpeed *= -1;
- }
- }
- if (WaterJumpSpeed > 0 && WaterJumpSpeed <= WaterJumpSpeedLimit)
- {
- WaterJumpSpeed *= 1 + WaterJumpSpeedLimit / 50;
- }
- WaterHero.y += WaterJumpSpeed;
- //platform hits
- for (var i:int = 0; i < levelDesign.platformHolder.numChildren; i++)
- {
- var hitplatform:Platform = Platform(levelDesign.platformHolder.getChildAt(i));
- if (WaterHero.hitTestObject(hitplatform))
- {
- if ( WaterJumpSpeed > 0)
- {
- WaterOnGround = false;
- WaterJumping = false;
- WaterHero.y = hitplatform.y - WaterHero.height;
- break;
- }
- else
- {
- WaterJumpSpeed = Math.abs(WaterJumpSpeed);
- WaterHero.y = hitplatform.y + hitplatform.height + 1;
- }
- }
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment