home *** CD-ROM | disk | FTP | other *** search
- class CCamera
- {
- var mMainObject;
- var mContainerObject;
- var mStageSize;
- var mPosition;
- var mScale;
- var mTrackObject;
- function CCamera(tMainObject)
- {
- this.mMainObject = tMainObject;
- this.mContainerObject = this.mMainObject._parent;
- this.mStageSize = new flash.geom.Point(this.mContainerObject._Size._width,this.mContainerObject._Size._height);
- this.mPosition = new flash.geom.Point(tMainObject._x,tMainObject._y);
- this.mScale = 0.5;
- this.mMainObject._xscale = 100;
- this.mMainObject._yscale = 100;
- this.mMainObject.mSize = new flash.geom.Point(this.mMainObject._width,this.mMainObject._height);
- this.mMainObject.mBackground.mSize = new flash.geom.Point(this.mMainObject.mBackground._width,this.mMainObject.mBackground._height);
- this.mContainerObject._Size._visible = false;
- }
- function SetTrackObject(tObject)
- {
- this.mTrackObject = tObject;
- this.mPosition = new flash.geom.Point(0,0).subtract(this.mTrackObject.mPosition);
- this.mMainObject._x = this.mPosition.x;
- this.mMainObject._y = this.mPosition.y;
- trace(this.mPosition);
- }
- function Process()
- {
- var _loc3_ = this.mTrackObject.mDelta.clone();
- _loc3_.x *= 15;
- _loc3_.y *= 15;
- if(_global.mKeyControl)
- {
- if(Key.isDown(38) && this.mScale < 0.5)
- {
- this.mScale += 0.01;
- }
- if(Key.isDown(40) && this.mScale >= 0.3)
- {
- this.mScale -= 0.01;
- }
- }
- var _loc4_ = this.mTrackObject.mDelta.length;
- if(_loc4_ > 10)
- {
- _loc4_ = 10;
- }
- var _loc7_ = (1 - _loc4_ * 0.5 / 10) * 100;
- this.mContainerObject._xscale = this.mContainerObject._yscale = this.mScale * 100;
- var _loc5_ = new flash.geom.Point(0,0).subtract(this.mTrackObject.mPosition.add(_loc3_));
- this.mPosition.x += (_loc5_.x - this.mPosition.x) / 10;
- this.mPosition.y += (_loc5_.y - this.mPosition.y) / 10;
- this.mPosition.x = scidd.Math.CMath.Range(this.mPosition.x,- this.mMainObject.mSize.x + this.mStageSize.x / 2 * (1 / this.mScale),(- this.mStageSize.x) * (1 / this.mScale) / 2);
- this.mPosition.y = scidd.Math.CMath.Range(this.mPosition.y,- this.mMainObject.mSize.y + this.mStageSize.y / 2 * (1 / this.mScale),(- this.mStageSize.y) * (1 / this.mScale) / 2);
- this.mMainObject.mBackground._xscale = this.mMainObject.mBackground._yscale = 1 / this.mScale * 100;
- var _loc6_ = this.mMainObject.mBackground.mSize.x / this.mMainObject.mSize.x;
- this.mMainObject.mBackground._x = this.mPosition.x * _loc6_ - (this.mMainObject.mBackground._width - this.mMainObject.mBackground.mSize.x) / 2;
- this.mMainObject.mBackground._y = this.mPosition.y * _loc6_ - (this.mMainObject.mBackground._height - this.mMainObject.mBackground.mSize.y) / 2;
- this.mMainObject._x = this.mPosition.x;
- this.mMainObject._y = this.mPosition.y;
- }
- }
-