Section 1
//bg_art (bg_art)
package {
import flash.display.*;
public dynamic class bg_art extends MovieClip {
}
}//package
Section 2
//HitTest (HitTest)
package {
import flash.geom.*;
import flash.display.*;
public class HitTest {
public static function hittestHandler(_arg1:DisplayObject, _arg2:DisplayObject, _arg3):Rectangle{
var b1:Rectangle;
var b2:Rectangle;
var touching:Rectangle;
var mat:Matrix;
var intersec:Rectangle;
var img:BitmapData;
var pObject1 = _arg1;
var pObject2 = _arg2;
var pParent = _arg3;
if (pObject1.hitTestObject(pObject2)){
b1 = pObject1.getBounds(pParent);
b2 = pObject2.getBounds(pParent);
touching = b1.intersection(b2);
try {
img = new BitmapData(touching.width, touching.height, false);
} catch(e) {
return (new Rectangle());
};
mat = pObject2.transform.concatenatedMatrix;
mat.translate(-(touching.left), -(touching.top));
img.draw(pObject2, mat, new ColorTransform(1, 1, 1, 1, 0xFF, -255, -255, 0xFF));
mat = pObject1.transform.concatenatedMatrix;
mat.translate(-(touching.left), -(touching.top));
img.draw(pObject1, mat, new ColorTransform(1, 1, 1, 1, 0xFF, 0xFF, 0xFF, 0xFF), "difference");
intersec = img.getColorBoundsRect(4294967295, 4278255615);
intersec.offset(touching.left, touching.top);
if ((((intersec.width == 0)) || ((intersec.height == 0)))){
return (new Rectangle());
};
return (intersec);
//unresolved jump
};
return (new Rectangle());
}
}
}//package
Section 3
//Lyn (Lyn)
package {
import flash.geom.*;
import flash.display.*;
import flash.events.*;
public class Lyn extends MovieClip {
private var distance:Number;// = 123.8
private var lynMaxSpeed:Number;// = 8
private var lyn_jump:lyn_jump2;
private var bg:bg_art;
private var lynCurrentSpeed:Number;// = 0
private var disablingMovements:Boolean;// = false
private var descelerationLeft:Boolean;// = false
private var disablingJumps:Boolean;// = false
private var descelerationRight:Boolean;// = false
public function Lyn():void{
lyn_jump = new lyn_jump2();
bg = new bg_art();
distance = 123.8;
lynCurrentSpeed = 0;
lynMaxSpeed = 8;
descelerationLeft = false;
descelerationRight = false;
disablingMovements = false;
disablingJumps = false;
super();
addFrameScript(0, frame1);
bg.x = (900 - 50);
bg.y = -5.5;
addChild(bg);
lyn_jump.x = (stage.stageWidth / 2);
lyn_jump.y = (stage.stageHeight / 2);
lyn_jump.gotoAndStop(1);
addChild(lyn_jump);
trace(("Y now: " + lyn_jump.y));
trace(("X now: " + lyn_jump.x));
stage.addEventListener(Event.ENTER_FRAME, lyn_move, false, 0, true);
stage.addEventListener(KeyboardEvent.KEY_UP, onKey, false, 0, true);
stage.addEventListener(KeyboardEvent.KEY_DOWN, onKey, false, 0, true);
}
public function onKey(_arg1:KeyboardEvent):void{
if ((((_arg1.keyCode == 37)) && ((_arg1.type == "keyDown")))){
if (disablingMovements == false){
stage.addEventListener(Event.ENTER_FRAME, moveLeft, false, 0, true);
};
};
if ((((_arg1.keyCode == 37)) && ((_arg1.type == "keyUp")))){
descelerationLeft = true;
};
if ((((_arg1.keyCode == 39)) && ((_arg1.type == "keyDown")))){
if (disablingMovements == false){
stage.addEventListener(Event.ENTER_FRAME, moveRight, false, 0, true);
};
};
if ((((_arg1.keyCode == 39)) && ((_arg1.type == "keyUp")))){
descelerationRight = true;
};
if ((((_arg1.keyCode == 38)) && ((disablingJumps == false)))){
if ((((_arg1.keyCode == 38)) && ((_arg1.type == "keyUp")))){
if ((((lyn_jump.currentFrame >= 19)) && ((lyn_jump.currentFrame <= 26)))){
lyn_jump.x = (lyn_jump.x + 3.8);
};
stage.removeEventListener(Event.ENTER_FRAME, lyn_move);
disablingMovements = true;
jump();
};
};
}
private function jumpEvent(_arg1:Number=50):void{
lynCurrentSpeed = 0;
trace(("Current Frame: " + lyn_jump.currentFrame));
if (lyn_jump.currentFrame == 27){
lyn_jump.y = (stage.stageHeight / 2);
lyn_jump.gotoAndStop(1);
removeEventListener(Event.ENTER_FRAME, jumpEvent);
} else {
lyn_jump.nextFrame();
};
if (lyn_jump.currentFrame == 1){
lyn_jump.y = (stage.stageHeight / 2);
};
if (lyn_jump.currentFrame == 2){
disablingJumps = true;
disablingMovements = true;
if (distance >= 14){
lyn_jump.x = (lyn_jump.x + 14);
} else {
if (distance >= 8){
lyn_jump.x = (lyn_jump.x + 8);
} else {
lyn_jump.x = (lyn_jump.x + (-0.8 - 5));
};
};
lyn_jump.y = ((stage.stageHeight / 2) - 53);
} else {
if (lyn_jump.currentFrame == 3){
if (distance >= 44){
lyn_jump.x = (lyn_jump.x + 30);
};
lyn_jump.y = (((stage.stageHeight / 2) - 53) - 42);
} else {
if (lyn_jump.currentFrame == 5){
if (distance >= 56){
lyn_jump.x = (lyn_jump.x + 12);
};
lyn_jump.y = (lyn_jump.y + -11);
} else {
if (lyn_jump.currentFrame == 7){
if (distance >= 73){
lyn_jump.x = (lyn_jump.x + 17);
};
lyn_jump.y = (lyn_jump.y + 0);
} else {
if (lyn_jump.currentFrame == 8){
if (distance >= 74.3){
lyn_jump.x = (lyn_jump.x + (3.3 - 2));
};
lyn_jump.y = (lyn_jump.y - 1);
lyn_jump.rotation = (lyn_jump.rotation + 5);
} else {
if (lyn_jump.currentFrame == 9){
if (distance >= 77.6){
lyn_jump.x = (lyn_jump.x + 3.3);
} else {
if (distance <= 14){
lyn_jump.x = (lyn_jump.x + 1);
};
};
lyn_jump.y = (lyn_jump.y - 1);
lyn_jump.rotation = (lyn_jump.rotation + 5);
} else {
if (lyn_jump.currentFrame == 10){
if (distance >= 81){
lyn_jump.x = (lyn_jump.x + 3.4);
} else {
if (distance <= 14){
lyn_jump.x = (lyn_jump.x + 1);
};
};
lyn_jump.y = (lyn_jump.y + 1);
lyn_jump.rotation = (lyn_jump.rotation + 5);
} else {
if (lyn_jump.currentFrame == 11){
if (distance >= 93.5){
lyn_jump.x = (lyn_jump.x + 12.5);
} else {
if (distance <= 14){
lyn_jump.x = (lyn_jump.x + 1);
};
};
lyn_jump.y = (lyn_jump.y + 3);
lyn_jump.rotation = 0;
} else {
if (lyn_jump.currentFrame == 12){
if (distance >= 95.5){
lyn_jump.x = (lyn_jump.x + 2);
} else {
if (distance <= 14){
lyn_jump.x = (lyn_jump.x + 1);
};
};
lyn_jump.y = (lyn_jump.y + 1);
} else {
if (lyn_jump.currentFrame == 13){
if (distance >= 115.5){
lyn_jump.x = (lyn_jump.x + 20);
} else {
if (distance <= 14){
lyn_jump.x = (lyn_jump.x + 1);
};
};
lyn_jump.y = (lyn_jump.y + 13);
} else {
if (lyn_jump.currentFrame == 14){
if (distance >= 123.8){
lyn_jump.x = (lyn_jump.x + 13.5);
};
lyn_jump.y = (lyn_jump.y + 21);
} else {
if (lyn_jump.currentFrame == 15){
lyn_jump.x = (lyn_jump.x + -2);
lyn_jump.y = (lyn_jump.y + 26);
} else {
if (lyn_jump.currentFrame == 16){
if (distance >= 121){
lyn_jump.x = (lyn_jump.x + -6);
};
lyn_jump.y = (lyn_jump.y + 14);
} else {
if (lyn_jump.currentFrame == 17){
lyn_jump.x = (lyn_jump.x + -1);
lyn_jump.y = (lyn_jump.y + (12 + 1.2));
} else {
if (lyn_jump.currentFrame == 19){
lyn_jump.x = (lyn_jump.x + (2 - 2));
lyn_jump.y = (lyn_jump.y + (6 - 1));
stage.removeChildAt(1);
disablingJumps = false;
lynCurrentSpeed = 0;
} else {
if (lyn_jump.currentFrame == 21){
lyn_jump.x = (lyn_jump.x + 0);
lyn_jump.y = (lyn_jump.y + 1);
} else {
if (lyn_jump.currentFrame == 23){
lyn_jump.x = (lyn_jump.x + 0);
lyn_jump.y = (lyn_jump.y + 9);
} else {
if (lyn_jump.currentFrame == 25){
lyn_jump.x = (lyn_jump.x + 0);
lyn_jump.y = (lyn_jump.y + 4.8);
} else {
if (lyn_jump.currentFrame == 26){
lyn_jump.x = (lyn_jump.x + 3.8);
lyn_jump.y = (lyn_jump.y + -4);
this.parent.addEventListener(KeyboardEvent.KEY_DOWN, onKey);
stage.addEventListener(Event.ENTER_FRAME, lyn_move, false, 0, true);
disablingMovements = false;
lynCurrentSpeed = 0;
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
trace(("Y now: " + lyn_jump.y));
trace(("X now: " + lyn_jump.x));
}
private function jump():void{
var _local1:Sprite;
var _local2:Rectangle;
lyn_jump.gotoAndStop(1);
_local1 = new Sprite();
_local1.graphics.lineStyle(1, 0xFFCC00, 1);
_local1.graphics.drawRect(lyn_jump.x, lyn_jump.y, (123.8 + 25), lyn_jump.height);
_local1.graphics.endFill();
_local1.name = "rect_jump";
stage.addChild(_local1);
_local2 = HitTest.hittestHandler(_local1, bg, stage);
distance = (123.8 - _local2.width);
trace(("Width to reduce: " + distance));
addEventListener(Event.ENTER_FRAME, jumpEvent);
}
private function onStage(_arg1:Event):void{
addEventListener(Event.ENTER_FRAME, jumpAnimTest);
addEventListener(Event.ENTER_FRAME, jumpEvent);
}
function frame1(){
}
private function moveLeft(_arg1:Event):void{
if ((((descelerationLeft == true)) && ((lynCurrentSpeed < 0)))){
lynCurrentSpeed = (lynCurrentSpeed + 1);
} else {
if ((((lynCurrentSpeed >= -(lynMaxSpeed))) && ((descelerationLeft == false)))){
lynCurrentSpeed = (lynCurrentSpeed - 1);
} else {
if (lynCurrentSpeed >= 0){
descelerationLeft = false;
stage.removeEventListener(Event.ENTER_FRAME, moveLeft);
};
};
};
}
private function jumpAnimTest(_arg1:Event):void{
trace(lyn_jump.y);
}
private function moveRight(_arg1:Event):void{
if ((((descelerationRight == true)) && ((lynCurrentSpeed > 0)))){
lynCurrentSpeed = (lynCurrentSpeed - 1);
} else {
if ((((lynCurrentSpeed <= lynMaxSpeed)) && ((descelerationRight == false)))){
lynCurrentSpeed = (lynCurrentSpeed + 1);
} else {
if (lynCurrentSpeed <= 0){
descelerationRight = false;
stage.removeEventListener(Event.ENTER_FRAME, moveRight);
};
};
};
}
private function lyn_move(_arg1:Event):void{
lyn_jump.x = (lyn_jump.x + lynCurrentSpeed);
trace(("Speed: " + lynCurrentSpeed));
}
}
}//package
Section 4
//Lyn_jump (Lyn_jump)
package {
import flash.display.*;
public dynamic class Lyn_jump extends MovieClip {
}
}//package
Section 5
//lyn_jump2 (lyn_jump2)
package {
import flash.display.*;
public dynamic class lyn_jump2 extends MovieClip {
}
}//package