home *** CD-ROM | disk | FTP | other *** search
- package
- {
- import assets.buildings.*;
- import assets.objects.*;
- import assets.walls.*;
- import flash.display.*;
- import flash.events.*;
-
- public class sceneEngine extends Sprite
- {
-
-
- private var distance:Number = 0;
-
- public var element:Sprite;
-
- private var travel:Number = 0;
-
- private var course:Number;
-
- private var fmark:Number = 0;
-
- private var elementSource:Array;
-
- private var backscape:MovieClip;
-
- private var fChance:Number = 50;
-
- public var foreground:Sprite;
-
- private var pmark:Number = 0;
-
- private var skyscape:Sprite;
-
- public var scope:Object;
-
- private var foreArray:Array;
-
- private var eFrequency:Number = 1000;
-
- private var foregroundSource:Array;
-
- private var forescape:Sprite;
-
- private var fFrequency:Number = 1000;
-
- private var finish:Boolean = false;
-
- public var groundscape:MovieClip;
-
- private var nearscape:MovieClip;
-
- private var emark:Number = 0;
-
- public var landscape:Sprite;
-
- public var elementArray:Array;
-
- private var pFrequency:Number = 5;
-
- private var midscape:MovieClip;
-
- public var foregroundArray:Array;
-
- private var foreSource:Array;
-
- private var eChance:Number = 20;
-
- public function sceneEngine(param1:*)
- {
- travel = 0;
- emark = 0;
- fmark = 0;
- pmark = 0;
- distance = 0;
- finish = false;
- eFrequency = 1000;
- eChance = 20;
- fFrequency = 1000;
- fChance = 50;
- pFrequency = 5;
- foreSource = new Array();
- foreArray = new Array();
- elementSource = new Array();
- elementArray = new Array();
- foregroundSource = new Array();
- foregroundArray = new Array();
- super();
- scope = param1;
- setData();
- }
-
- private function elementAdd() : *
- {
- var _loc1_:* = undefined;
- var _loc2_:* = undefined;
- _loc1_ = Math.round(Math.random() * (elementSource[course - 1].length - 1));
- _loc2_ = new elementSource[course - 1][_loc1_](this);
- _loc2_.x = 1000 + _loc2_.wide;
- elementArray.push(_loc2_);
- element.addChild(_loc2_);
- }
-
- private function setData() : *
- {
- var _loc1_:* = undefined;
- var _loc2_:* = undefined;
- var _loc3_:* = undefined;
- var _loc4_:* = undefined;
- var _loc5_:* = undefined;
- var _loc6_:* = undefined;
- _loc1_ = [building1,building2,building3,shop1,shop2,shop3,wall_block2,woodfence1,wall_chainlink1];
- _loc2_ = [building4,building5,building6,building7,building8,wall_block1,woodfence2,wall_chainlink1];
- foreSource.push(_loc1_);
- foreSource.push(_loc2_);
- _loc3_ = [grate1,manhole1,hole1];
- _loc4_ = [barrier1,manhole1,hole1,dirtpile1];
- elementSource.push(_loc3_);
- elementSource.push(_loc4_);
- _loc5_ = [hydrant,bikerack,gaspipe1,trashcan1,sign1];
- _loc6_ = [hydrant,gaspipe2,trashcan1,sign1,oildrum];
- foregroundSource.push(_loc5_);
- foregroundSource.push(_loc6_);
- }
-
- public function elementToForeground(param1:*, param2:*, param3:*, param4:*) : *
- {
- var _loc5_:* = undefined;
- var _loc6_:* = undefined;
- _loc5_ = 0;
- while(_loc5_ < elementArray.length)
- {
- if(elementArray[_loc5_].name == param4.name)
- {
- element.removeChild(elementArray[_loc5_]);
- elementArray.splice(_loc5_,1);
- break;
- }
- _loc5_++;
- }
- (_loc6_ = new param1(this)).x = param2;
- _loc6_.y = param3;
- foregroundArray.push(_loc6_);
- foreground.addChildAt(_loc6_,0);
- }
-
- public function setScene() : *
- {
- var _loc1_:* = undefined;
- course = scope.course;
- scope.stats.travelBar.scaleX = 0;
- landscape = new Sprite();
- forescape = new Sprite();
- element = new Sprite();
- foreground = new Sprite();
- switch(course)
- {
- case 1:
- distance = 50000;
- skyscape = new Sprite();
- skyscape.graphics.beginFill(10079487);
- skyscape.graphics.drawRect(0,0,700,100);
- groundscape = new sidewalk(scope);
- groundscape.x = -100;
- groundscape.y = 330;
- backscape = new cityscape_back1();
- midscape = new cityscape_mid1();
- nearscape = new cityscape_near1();
- backscape.y = 210;
- midscape.y = 240;
- nearscape.y = 280;
- forescape.x = -150;
- element.x = -150;
- foreground.x = -150;
- break;
- case 2:
- distance = 100000;
- skyscape = new Sprite();
- skyscape.graphics.beginFill(16764006);
- skyscape.graphics.drawRect(0,0,700,100);
- groundscape = new sidewalk(scope);
- groundscape.x = -100;
- groundscape.y = 330;
- backscape = new cityscape_back2();
- midscape = new cityscape_mid2();
- nearscape = new cityscape_near2();
- backscape.y = 210;
- midscape.y = 240;
- nearscape.y = 280;
- forescape.x = -150;
- element.x = -150;
- foreground.x = -150;
- }
- forescapeAdd();
- landscape.addChild(skyscape);
- landscape.addChild(backscape);
- landscape.addChild(midscape);
- landscape.addChild(nearscape);
- landscape.addChild(forescape);
- scope.addChild(groundscape);
- scope.addChild(landscape);
- scope.addChild(element);
- scope.addChild(foreground);
- _loc1_ = new finishline(this,false);
- _loc1_.x = 250 + 150;
- elementArray.push(_loc1_);
- element.addChild(_loc1_);
- }
-
- public function process() : *
- {
- var _loc1_:* = undefined;
- var _loc2_:* = undefined;
- var _loc3_:* = undefined;
- var _loc4_:* = undefined;
- var _loc5_:* = undefined;
- var _loc6_:* = undefined;
- var _loc7_:* = undefined;
- var _loc8_:Number = NaN;
- var _loc9_:* = undefined;
- var _loc10_:* = undefined;
- travel += Math.round(scope.vx);
- fmark += Math.round(scope.vx);
- emark += Math.round(scope.vx);
- scope.stats.travelBar.scaleX = travel / distance;
- if(travel >= distance)
- {
- scope.stats.travelBar.scaleX = 1;
- if(!finish)
- {
- finish = true;
- (_loc5_ = new finishline(this,true)).x = 1000 + _loc5_.wide;
- elementArray.push(_loc5_);
- element.addChild(_loc5_);
- }
- }
- if(emark >= eFrequency && !finish)
- {
- if(Math.round(Math.random() * 100) < eChance)
- {
- elementAdd();
- }
- emark = 0;
- }
- if(fmark >= fFrequency && !finish)
- {
- if(pmark == pFrequency)
- {
- foregroundAdd(true);
- pmark = -1;
- fmark = 0;
- }
- else if(Math.round(Math.random() * 100) < fChance)
- {
- foregroundAdd(false);
- }
- ++pmark;
- fmark = 0;
- }
- groundscape.process();
- if(backscape.x <= -700)
- {
- backscape.x += -1 * backscape.x;
- }
- if(midscape.x <= -700)
- {
- midscape.x += -1 * midscape.x;
- }
- if(nearscape.x <= -700)
- {
- nearscape.x += -1 * nearscape.x;
- }
- backscape.x -= scope.vx * ((backscape.y - scope.pp.y) / scope.pp.y);
- midscape.x -= scope.vx * ((midscape.y - scope.pp.y) / scope.pp.y);
- nearscape.x -= scope.vx * ((nearscape.y - scope.pp.y) / scope.pp.y);
- _loc1_ = scope.vx * ((forescape.y + 330 - scope.pp.y) / scope.pp.y);
- if(foreArray[0].x + foreArray[0].wide <= 0)
- {
- forescape.removeChild(foreArray[0]);
- foreArray.shift();
- }
- if(foreArray[foreArray.length - 1].x - foreArray[foreArray.length - 1].wide <= 850)
- {
- forescapeAdd();
- }
- _loc2_ = 0;
- while(_loc2_ < foreArray.length)
- {
- foreArray[_loc2_].x -= _loc1_;
- _loc6_ = foreArray[_loc2_].x - 500;
- foreArray[_loc2_].dist = Math.abs(_loc6_);
- _loc2_++;
- }
- _loc3_ = foreArray.slice();
- _loc3_.sortOn("dist",Array.DESCENDING | Array.NUMERIC);
- _loc4_ = 0;
- while(_loc4_ < _loc3_.length)
- {
- forescape.addChild(_loc3_[_loc4_]);
- _loc4_++;
- }
- if(elementArray.length > 0)
- {
- if(elementArray[0].x + elementArray[0].wide <= 0)
- {
- element.removeChild(elementArray[0]);
- elementArray.shift();
- }
- _loc7_ = 0;
- while(_loc7_ < elementArray.length)
- {
- switch(elementArray[_loc7_].objType)
- {
- case 0:
- _loc8_ = scope.vx * ((elementArray[_loc7_].y - elementArray[_loc7_].deep / 2 - scope.pp.y) / scope.pp.y);
- break;
- case 1:
- _loc8_ = scope.vx * ((elementArray[_loc7_].y - scope.pp.y) / scope.pp.y);
- break;
- case 2:
- _loc8_ = scope.vx * ((elementArray[_loc7_].y - elementArray[_loc7_].deep / 2 - scope.pp.y) / scope.pp.y);
- break;
- default:
- _loc8_ = scope.vx * ((elementArray[_loc7_].y - scope.pp.y) / scope.pp.y);
- break;
- }
- elementArray[_loc7_].x -= _loc8_;
- _loc7_++;
- }
- }
- if(foregroundArray.length > 0)
- {
- if(foregroundArray[0].x + foregroundArray[0].wide <= 0)
- {
- foreground.removeChild(foregroundArray[0]);
- foregroundArray.shift();
- }
- _loc9_ = 0;
- while(_loc9_ < foregroundArray.length)
- {
- _loc10_ = scope.vx * ((foregroundArray[_loc9_].y - scope.pp.y) / scope.pp.y);
- foregroundArray[_loc9_].x -= _loc10_;
- _loc9_++;
- }
- }
- }
-
- private function foregroundAdd(param1:*) : *
- {
- var _loc2_:MovieClip = null;
- var _loc3_:* = undefined;
- if(param1)
- {
- _loc2_ = new powerpole1(this);
- }
- else
- {
- _loc3_ = Math.round(Math.random() * (foregroundSource[course - 1].length - 1));
- _loc2_ = new foregroundSource[course - 1][_loc3_](this);
- }
- _loc2_.x = 1000 + _loc2_.wide;
- foregroundArray.push(_loc2_);
- foreground.addChild(_loc2_);
- }
-
- private function forescapeAdd() : *
- {
- var _loc1_:* = undefined;
- var _loc2_:* = undefined;
- var _loc3_:Number = NaN;
- while(foreArray.length == 0 || foreArray[foreArray.length - 1].x <= 1200)
- {
- _loc1_ = Math.round(Math.random() * (foreSource[course - 1].length - 1));
- _loc2_ = new foreSource[course - 1][_loc1_](this);
- if(foreArray.length == 0)
- {
- _loc2_.x = _loc2_.wide;
- }
- else
- {
- if(foreArray[foreArray.length - 1].space == 0)
- {
- _loc3_ = 0;
- }
- else
- {
- _loc3_ = Number(_loc2_.space);
- }
- _loc2_.x = _loc2_.wide + _loc3_ + foreArray[foreArray.length - 1].x + foreArray[foreArray.length - 1].wide;
- }
- _loc2_.y = 330;
- _loc2_.addElements();
- foreArray.push(_loc2_);
- forescape.addChild(_loc2_);
- }
- }
-
- public function resetScene() : *
- {
- var _loc1_:* = undefined;
- var _loc2_:* = undefined;
- var _loc3_:* = undefined;
- travel = 0;
- emark = 0;
- fmark = 0;
- pmark = 0;
- finish = false;
- _loc1_ = 0;
- while(_loc1_ < foreArray.length)
- {
- forescape.removeChild(foreArray[_loc1_]);
- _loc1_++;
- }
- _loc2_ = 0;
- while(_loc2_ < elementArray.length)
- {
- element.removeChild(elementArray[_loc2_]);
- _loc2_++;
- }
- _loc3_ = 0;
- while(_loc3_ < foregroundArray.length)
- {
- foreground.removeChild(foregroundArray[_loc3_]);
- _loc3_++;
- }
- foreArray.splice(0);
- elementArray.splice(0);
- foregroundArray.splice(0);
- landscape.removeChild(skyscape);
- landscape.removeChild(backscape);
- landscape.removeChild(midscape);
- landscape.removeChild(nearscape);
- landscape.removeChild(forescape);
- scope.removeChild(groundscape);
- scope.removeChild(landscape);
- scope.removeChild(element);
- scope.removeChild(foreground);
- }
- }
- }
-