Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package
- {
- import flash.display.Sprite;
- import flash.display.DisplayObject;
- import flash.events.KeyboardEvent;
- import flash.ui.Keyboard;
- import flash.events.Event;
- import flash.display.Stage;
- import flash.display.MovieClip;
- import flash.display.FrameLabel;
- public class citysape extends MovieClip
- {
- public var rightInnerBoundary:uint;
- public var leftInnerBoundary:uint;
- public var topInnerBoundary:uint;
- public var bottomInnerBoundary:uint;
- public var vx: int = 0;
- public var vy: int = 0;
- public var upPressed: Boolean = false;
- public var downPressed: Boolean = false;
- public var leftPressed: Boolean = false;
- public var rightPressed: Boolean = false;
- public var hitting: Boolean;
- public var accelerationx: Number = 0;
- public var accelerationy: Number = 0;
- public var speedLimit: Number = 5;
- public var friction: Number = 0.96;
- public var gravity: Number = 0.3;
- public var isOnGround: Boolean = undefined;
- public var jumpForce: Number = -10;
- public var character: MovieClip;
- public var box: MovieClip;
- public var floor: MovieClip;
- public function citysape()
- {
- if(!stage){
- this.addEventListener(Event.ADDED_TO_STAGE, stageReady);
- }else{
- stageReady();
- }
- function stageReady(event:Event = null):void {
- stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);
- stage.addEventListener(KeyboardEvent.KEY_UP, keyUpHandler);
- stage.addEventListener(Event.ENTER_FRAME, enterFrameHandler);
- rightInnerBoundary
- = (stage.stageWidth /2) + (stage.stageWidth /4);
- leftInnerBoundary
- = (stage.stageWidth /2) - (stage.stageWidth /4);
- topInnerBoundary
- = (stage.stageHeight / 2) - (stage.stageHeight / 4);
- bottomInnerBoundary
- = (stage.stageHeight / 2) + (stage.stageHeight / 4);
- function keyDownHandler(event:KeyboardEvent):void
- {
- if (event.keyCode == Keyboard.LEFT)
- {
- vx = -5;
- _character.gotoAndPlay("WALKL");
- _character.accelerationx = -0.2;
- _character.gravity = 0.3;
- }
- else if (event.keyCode == Keyboard.LEFT && (CollisionDectect.block(_character, box)))
- {
- vx = 0;
- _character.gotoAndStop("IDLEL");
- _character.accelerationx = 0.0;
- _character.gravity = 0.3;
- }
- else if (event.keyCode == Keyboard.RIGHT)
- {
- vx = 5;
- _character.gotoAndPlay("WALKR");
- _character.accelerationx = 0.2;
- _character.gravity = 0.3;
- }
- else if (event.keyCode == Keyboard.RIGHT && (CollisionDectect.block(_character, box)))
- {
- vx = 0;
- _character.gotoAndStop("IDLER");
- _character.accelerationx = 0.0;
- _character.gravity = 0.3;
- }
- else if (event.keyCode == Keyboard.UP
- || event.keyCode == Keyboard.SPACE)
- {
- if(_character.isOnGround)
- {
- _character.vy += _character.jumpForce;
- _character.isOnGround = false;
- _character.gravity = 0.2;
- }
- }
- else if (event.keyCode == Keyboard.UP && (CollisionDectect.block(_character, box))
- || event.keyCode == Keyboard.SPACE && (CollisionDectect.block(_character, box)))
- {
- vx = 0;
- _character.gotoAndStop("IDLER");
- _character.accelerationx = 0.0;
- _character.gravity = 0.3;
- }
- }
- function keyUpHandler(event:KeyboardEvent):void
- {
- if (event.keyCode == Keyboard.LEFT)
- {
- vx = 0;
- _character.gotoAndStop("IDLEL");
- _character.accelerationx = 0.0;
- _character.gravity = 0.3;
- }
- if (event.keyCode == Keyboard.RIGHT)
- {
- vx = 0;
- _character.gotoAndStop("IDLER");
- _character.accelerationx = 0.0;
- _character.gravity = 0.3;
- }
- if (event.keyCode == Keyboard.UP)
- {
- vx = 0;
- _character.gotoAndStop("IDLER");
- _character.accelerationx = 0.0;
- _character.gravity = 0.3;
- }
- }
- function enterFrameHandler(event:Event):void
- {
- //Move the character
- _character.x += _character.vx;
- _character.y += _character.vy;
- //Apply acceleration
- _character.vx += _character.accelerationx;
- _character.vy += _character.accelerationx;
- //Apply friction
- _character.vx *= _character.friction;
- _character.vy *= _character.friction;
- //Apply gravity
- _character.vx += _character.gravity;
- _character.vy += _character.gravity;
- //check floor
- if (_character.y == 463) {
- _character.isOnGround = true;
- }
- //Force the velocity to zero
- //after it falls below 0.1
- if (Math.abs(_character.vx) < 0.1)
- {
- _character.vx = 0;
- }
- if (Math.abs(_character.vy) < 0.1)
- {
- _character.vy = 0;
- }
- //Limit the speed, except when the character
- //is moving upwards
- if (_character.vx > _character.speedLimit)
- {
- _character.vx = _character.speedLimit;
- }
- if (_character.vx < -_character.speedLimit)
- {
- _character.vx = -_character.speedLimit;
- }
- if (_character.vy > _character.speedLimit * 2)
- {
- _character.vy = _character.speedLimit * 2;
- }
- //Check the inner boundaries
- if (_character.x < leftInnerBoundary)
- {
- _character.x = leftInnerBoundary;
- rightInnerBoundary
- = (stage.stageWidth / 2) + (stage.stageWidth / 4);
- background.x -= vx / 2;
- foreground.x -= vx;
- }
- else if (_character.x + 90 > rightInnerBoundary)
- {
- _character.x = rightInnerBoundary - _character.width
- leftInnerBoundary
- = (stage.stageWidth / 2) - (stage.stageWidth / 4);
- background.x -= vx / 2;
- foreground.x -= vx;
- }
- if (_character.y < topInnerBoundary)
- {
- _character.y = topInnerBoundary;
- bottomInnerBoundary
- = (stage.stageHeight / 2) + (stage.stageHeight / 4);
- }
- else if (_character.y + _character.height > bottomInnerBoundary)
- {
- _character.y = bottomInnerBoundary - _character.height;
- topInnerBoundary
- = (stage.stageHeight / 2) - (stage.stageHeight / 4);
- }
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment