package_9 alternativa.tanks.game.camera

This commit is contained in:
Pyogenics
2025-01-27 18:00:14 +00:00
parent 37b64f353c
commit 608f91dc7a
10 changed files with 86 additions and 85 deletions

View File

@@ -5,6 +5,7 @@ package_5 alternativa.osgi
package_6 alternativa.osgi.service.console package_6 alternativa.osgi.service.console
package_7 alternativa.tanks package_7 alternativa.tanks
package_8 alternativa.startup package_8 alternativa.startup
package_9 alternativa.tanks.game.camera
package_10 alternativa.tanks.game package_10 alternativa.tanks.game
package_11 alternativa package_11 alternativa
package_13 alternativa.tanks.config package_13 alternativa.tanks.config

View File

@@ -40,8 +40,8 @@ package
import alternativa.tanks.TankTestTask; import alternativa.tanks.TankTestTask;
import alternativa.startup.LibraryInfo; import alternativa.startup.LibraryInfo;
import alternativa.startup.ConnectionParameters; import alternativa.startup.ConnectionParameters;
import package_9.name_20; import alternativa.tanks.game.camera.FreeCameraController;
import package_9.name_23; import alternativa.tanks.game.camera.AxisIndicator;
[SWF(backgroundColor="#333333",frameRate="100",width="1024",height="768")] [SWF(backgroundColor="#333333",frameRate="100",width="1024",height="768")]
public class TanksTestingTool extends Sprite public class TanksTestingTool extends Sprite
@@ -119,7 +119,7 @@ package
private function onControllerSettingsChange(param1:ConsoleVarFloat) : void private function onControllerSettingsChange(param1:ConsoleVarFloat) : void
{ {
name_20.smoothing = param1.value; FreeCameraController.smoothing = param1.value;
} }
private function onLightSettingsChange(param1:ConsoleVar) : void private function onLightSettingsChange(param1:ConsoleVar) : void
@@ -282,7 +282,7 @@ package
private function onResize(param1:Event) : void private function onResize(param1:Event) : void
{ {
var _loc2_:name_23 = null; var _loc2_:AxisIndicator = null;
if(this.gameKernel != null) if(this.gameKernel != null)
{ {
this.gameKernel.name_5().name_46(0,0,stage.stageWidth,stage.stageHeight); this.gameKernel.name_5().name_46(0,0,stage.stageWidth,stage.stageHeight);

View File

@@ -11,7 +11,7 @@ package alternativa.tanks
import package_18.name_44; import package_18.name_44;
import package_19.name_53; import package_19.name_53;
import alternativa.tanks.game.entities.map.A3DMapComponent; import alternativa.tanks.game.entities.map.A3DMapComponent;
import package_9.name_20; import alternativa.tanks.game.camera.FreeCameraController;
public class InitBattleTask extends GameTask public class InitBattleTask extends GameTask
{ {
@@ -35,7 +35,7 @@ package alternativa.tanks
override public function run() : void override public function run() : void
{ {
var _loc1_:name_44 = this.gameKernel.name_5(); var _loc1_:name_44 = this.gameKernel.name_5();
var _loc2_:name_20 = new name_20(_loc1_.name_27(),this.gameKernel.name_66()); var _loc2_:FreeCameraController = new FreeCameraController(_loc1_.name_27(),this.gameKernel.name_66());
_loc1_.name_63(_loc2_); _loc1_.name_63(_loc2_);
_loc2_.name_75(0,0,1000); _loc2_.name_75(0,0,1000);
_loc2_.name_76(0,2000,0); _loc2_.name_76(0,2000,0);

View File

@@ -93,9 +93,9 @@ package alternativa.tanks
import package_87.name_267; import package_87.name_267;
import package_88.name_268; import package_88.name_268;
import package_89.name_266; import package_89.name_266;
import package_9.name_20; import alternativa.tanks.game.camera.FreeCameraController;
import package_9.name_298; import alternativa.tanks.game.camera.OrbitCameraController;
import package_9.name_299; import alternativa.tanks.game.camera.FollowCameraController;
import package_90.name_273; import package_90.name_273;
import package_91.name_296; import package_91.name_296;
import package_91.name_349; import package_91.name_349;
@@ -144,11 +144,11 @@ package alternativa.tanks
private var var_73:BitmapData; private var var_73:BitmapData;
private var var_67:name_299; private var var_67:FollowCameraController;
private var var_69:name_298; private var var_69:OrbitCameraController;
private var freeCameraController:name_20; private var freeCameraController:FreeCameraController;
private var var_68:name_102; private var var_68:name_102;
@@ -178,7 +178,7 @@ package alternativa.tanks
private var var_80:name_293 = new name_293(); private var var_80:name_293 = new name_293();
public function TankTestTask(param1:int, param2:Config, param3:GameKernel, param4:name_20, param5:Preloader) public function TankTestTask(param1:int, param2:Config, param3:GameKernel, param4:FreeCameraController, param5:Preloader)
{ {
super(param1); super(param1);
this.preloader = param5; this.preloader = param5;
@@ -202,8 +202,8 @@ package alternativa.tanks
_loc1_.name_94(KeyboardEventType.KEY_DOWN,this.onKeyDown); _loc1_.name_94(KeyboardEventType.KEY_DOWN,this.onKeyDown);
var _loc2_:name_56 = name_56(var_4.getTaskInterface(name_56)); var _loc2_:name_56 = name_56(var_4.getTaskInterface(name_56));
_loc2_.addEventListener(name_253.TANK_CLICK,this); _loc2_.addEventListener(name_253.TANK_CLICK,this);
this.var_67 = new name_299(this.gameKernel.name_5().name_27(),this.gameKernel.method_112().name_246().collisionDetector,name_257.STATIC,_loc1_); this.var_67 = new FollowCameraController(this.gameKernel.name_5().name_27(),this.gameKernel.method_112().name_246().collisionDetector,name_257.STATIC,_loc1_);
this.var_69 = new name_298(this.gameKernel.name_5().name_27(),this.gameKernel.method_112().name_246().collisionDetector,name_257.STATIC,_loc1_); this.var_69 = new OrbitCameraController(this.gameKernel.name_5().name_27(),this.gameKernel.method_112().name_246().collisionDetector,name_257.STATIC,_loc1_);
this.var_81 = new name_290(this.gameKernel.name_5()); this.var_81 = new name_290(this.gameKernel.name_5());
this.var_75 = new name_285(); this.var_75 = new name_285();
this.gameKernel.stage.addChild(this.var_75); this.gameKernel.stage.addChild(this.var_75);
@@ -305,10 +305,10 @@ package alternativa.tanks
case Keyboard.N: case Keyboard.N:
if(this.var_68 == this.freeCameraController) if(this.var_68 == this.freeCameraController)
{ {
name_20.targeted = !name_20.targeted; FreeCameraController.targeted = !FreeCameraController.targeted;
break; break;
} }
name_20.targeted = true; FreeCameraController.targeted = true;
this.setCameraController(this.freeCameraController); this.setCameraController(this.freeCameraController);
break; break;
case Keyboard.ENTER: case Keyboard.ENTER:

View File

@@ -1,15 +1,15 @@
package package_9 package alternativa.tanks.game.camera
{ {
import flash.display.Shape; import flash.display.Shape;
import package_18.name_90; import package_18.name_90;
public class name_23 extends Shape public class AxisIndicator extends Shape
{ {
private var var_32:int; private var var_32:int;
private var axis:Vector.<Number> = Vector.<Number>([0,0,0,0,0,0]); private var axis:Vector.<Number> = Vector.<Number>([0,0,0,0,0,0]);
public function name_23(size:int) public function AxisIndicator(size:int)
{ {
super(); super();
this.var_32 = size; this.var_32 = size;

View File

@@ -1,13 +1,13 @@
package package_9 package alternativa.tanks.game.camera
{ {
import package_18.name_90; import package_18.name_90;
import package_46.name_194; import package_46.name_194;
public class class_32 public class CameraControllerBase
{ {
protected var camera:name_90; protected var camera:name_90;
public function class_32() public function CameraControllerBase()
{ {
super(); super();
} }

View File

@@ -1,4 +1,4 @@
package package_9 package alternativa.tanks.game.camera
{ {
import flash.ui.Keyboard; import flash.ui.Keyboard;
import flash.utils.getTimer; import flash.utils.getTimer;
@@ -19,7 +19,7 @@ package package_9
import package_76.name_256; import package_76.name_256;
import package_90.name_273; import package_90.name_273;
public class name_299 extends class_32 implements name_102 public class FollowCameraController extends CameraControllerBase implements name_102
{ {
private static var parentMatrix:Matrix4 = new Matrix4(); private static var parentMatrix:Matrix4 = new Matrix4();
@@ -117,7 +117,7 @@ package package_9
private var var_515:name_380; private var var_515:name_380;
public function name_299(camera:name_90, collisionDetector:name_256, collisionMask:int, input:IInput) public function FollowCameraController(camera:name_90, collisionDetector:name_256, collisionMask:int, input:IInput)
{ {
super(); super();
this.camera = camera; this.camera = camera;
@@ -162,9 +162,9 @@ package package_9
this.targetPosition.copy(targetPosition); this.targetPosition.copy(targetPosition);
this.targetDirection.copy(targetDirection); this.targetDirection.copy(targetDirection);
this.var_522 = 0; this.var_522 = 0;
this.method_540(targetPosition,targetDirection,false,10000,this.cameraPositionData); this.getCameraPositionData(targetPosition,targetDirection,false,10000,this.cameraPositionData);
this.position.copy(this.cameraPositionData.position); this.position.copy(this.cameraPositionData.position);
this.rotation.x = this.method_542(this.cameraPositionData) - 0.5 * Math.PI; this.rotation.x = this.getPitchAngle(this.cameraPositionData) - 0.5 * Math.PI;
this.rotation.z = Math.atan2(-targetDirection.x,targetDirection.y); this.rotation.z = Math.atan2(-targetDirection.x,targetDirection.y);
name_201(this.position); name_201(this.position);
name_352(this.rotation); name_352(this.rotation);
@@ -191,17 +191,17 @@ package package_9
{ {
dt = 0.1; dt = 0.1;
} }
this.method_538(); this.updateHeight();
if(!this.locked) if(!this.locked)
{ {
this.method_114(); this.updateTargetState();
} }
this.method_540(this.targetPosition,this.targetDirection,true,dt,this.cameraPositionData); this.getCameraPositionData(this.targetPosition,this.targetDirection,true,dt,this.cameraPositionData);
positionDelta.method_366(this.cameraPositionData.position,this.position); positionDelta.method_366(this.cameraPositionData.position,this.position);
var positionError:Number = positionDelta.length(); var positionError:Number = positionDelta.length();
if(positionError > maxPositionError) if(positionError > maxPositionError)
{ {
this.var_526 = this.method_539(positionError - maxPositionError); this.var_526 = this.getLinearSpeed(positionError - maxPositionError);
} }
var distance:Number = this.var_526 * dt; var distance:Number = this.var_526 * dt;
if(distance > positionError) if(distance > positionError)
@@ -209,27 +209,27 @@ package package_9
distance = positionError; distance = positionError;
} }
positionDelta.normalize().scale(distance); positionDelta.normalize().scale(distance);
var targetPitchAngle:Number = this.method_542(this.cameraPositionData); var targetPitchAngle:Number = this.getPitchAngle(this.cameraPositionData);
var targetYawAngle:Number = Number(Math.atan2(-this.targetDirection.x,this.targetDirection.y)); var targetYawAngle:Number = Number(Math.atan2(-this.targetDirection.x,this.targetDirection.y));
var currentPitchAngle:Number = name_501.name_506(this.rotation.x + 0.5 * Math.PI); var currentPitchAngle:Number = name_501.name_506(this.rotation.x + 0.5 * Math.PI);
var currentYawAngle:Number = name_501.name_506(this.rotation.z); var currentYawAngle:Number = name_501.name_506(this.rotation.z);
var pitchError:Number = name_501.name_628(targetPitchAngle - currentPitchAngle); var pitchError:Number = name_501.name_628(targetPitchAngle - currentPitchAngle);
this.var_525 = this.method_537(pitchError,this.var_525); this.var_525 = this.getAngularSpeed(pitchError,this.var_525);
var deltaPitch:Number = this.var_525 * dt; var deltaPitch:Number = this.var_525 * dt;
if(pitchError > 0 && deltaPitch > pitchError || pitchError < 0 && deltaPitch < pitchError) if(pitchError > 0 && deltaPitch > pitchError || pitchError < 0 && deltaPitch < pitchError)
{ {
deltaPitch = pitchError; deltaPitch = pitchError;
} }
var yawError:Number = name_501.name_628(targetYawAngle - currentYawAngle); var yawError:Number = name_501.name_628(targetYawAngle - currentYawAngle);
this.var_527 = this.method_537(yawError,this.var_527); this.var_527 = this.getAngularSpeed(yawError,this.var_527);
var deltaYaw:Number = this.var_527 * dt; var deltaYaw:Number = this.var_527 * dt;
if(yawError > 0 && deltaYaw > yawError || yawError < 0 && deltaYaw < yawError) if(yawError > 0 && deltaYaw > yawError || yawError < 0 && deltaYaw < yawError)
{ {
deltaYaw = yawError; deltaYaw = yawError;
} }
this.var_526 = this.method_541(this.var_526,0,camSpeedThreshold); this.var_526 = this.snap(this.var_526,0,camSpeedThreshold);
this.var_525 = this.method_541(this.var_525,0,camSpeedThreshold); this.var_525 = this.snap(this.var_525,0,camSpeedThreshold);
this.var_527 = this.method_541(this.var_527,0,camSpeedThreshold); this.var_527 = this.snap(this.var_527,0,camSpeedThreshold);
this.position.add(positionDelta); this.position.add(positionDelta);
this.rotation.x += deltaPitch; this.rotation.x += deltaPitch;
this.rotation.z += deltaYaw; this.rotation.z += deltaYaw;
@@ -252,7 +252,7 @@ package package_9
public function set method_534(value:Number) : void public function set method_534(value:Number) : void
{ {
this.var_510 = name_501.clamp(value,MIN_HEIGHT,MAX_HEIGHT); this.var_510 = name_501.clamp(value,MIN_HEIGHT,MAX_HEIGHT);
var d:Number = this.method_535(this.var_510); var d:Number = this.getCamDistance(this.var_510);
this.var_521 = Math.atan2(this.var_510,d); this.var_521 = Math.atan2(this.var_510,d);
this.var_511 = Math.sqrt(this.var_510 * this.var_510 + d * d); this.var_511 = Math.sqrt(this.var_510 * this.var_510 + d * d);
this.var_522 = 0; this.var_522 = 0;
@@ -260,13 +260,13 @@ package package_9
public function method_546(targetPosition:name_194, targetDirection:name_194, resultingPosition:name_194, resultingAngles:name_194) : void public function method_546(targetPosition:name_194, targetDirection:name_194, resultingPosition:name_194, resultingAngles:name_194) : void
{ {
this.method_540(targetPosition,targetDirection,false,10000,this.cameraPositionData); this.getCameraPositionData(targetPosition,targetDirection,false,10000,this.cameraPositionData);
resultingAngles.x = this.method_542(this.cameraPositionData) - 0.5 * Math.PI; resultingAngles.x = this.getPitchAngle(this.cameraPositionData) - 0.5 * Math.PI;
resultingAngles.z = Math.atan2(-targetDirection.x,targetDirection.y); resultingAngles.z = Math.atan2(-targetDirection.x,targetDirection.y);
resultingPosition.copy(this.cameraPositionData.position); resultingPosition.copy(this.cameraPositionData.position);
} }
private function method_540(targetPosition:name_194, targetDirection:name_194, useReboundDelay:Boolean, dt:Number, result:CameraPositionData) : void private function getCameraPositionData(targetPosition:name_194, targetDirection:name_194, useReboundDelay:Boolean, dt:Number, result:CameraPositionData) : void
{ {
var angle:Number = NaN; var angle:Number = NaN;
var now:int = 0; var now:int = 0;
@@ -295,7 +295,7 @@ package package_9
{ {
rotationMatrix.method_344(axis,-angle); rotationMatrix.method_344(axis,-angle);
rotationMatrix.method_345(flatDirection,rayDirection); rotationMatrix.method_345(flatDirection,rayDirection);
minCollisionDistance = this.method_543(rayOrigin,rayDirection,this.var_511,minCollisionDistance); minCollisionDistance = this.getCollisionDistance(rayOrigin,rayDirection,this.var_511,minCollisionDistance);
} }
if(useReboundDelay) if(useReboundDelay)
{ {
@@ -342,7 +342,7 @@ package package_9
} }
} }
private function method_543(rayOrigin:name_194, rayDirection:name_194, rayLength:Number, minCollisionDistance:Number) : Number private function getCollisionDistance(rayOrigin:name_194, rayDirection:name_194, rayLength:Number, minCollisionDistance:Number) : Number
{ {
var distance:Number = NaN; var distance:Number = NaN;
if(this.collisionDetector.raycast(rayOrigin,rayDirection,this.collisionMask,rayLength,null,rayHit)) if(this.collisionDetector.raycast(rayOrigin,rayDirection,this.collisionMask,rayLength,null,rayHit))
@@ -364,7 +364,7 @@ package package_9
return minCollisionDistance; return minCollisionDistance;
} }
private function method_114() : void private function updateTargetState() : void
{ {
this.setMatrix(this.var_515.parent,parentMatrix); this.setMatrix(this.var_515.parent,parentMatrix);
this.setMatrix(this.var_515,matrix); this.setMatrix(this.var_515,matrix);
@@ -379,7 +379,7 @@ package package_9
matrix.name_75(object.x,object.y,object.z); matrix.name_75(object.x,object.y,object.z);
} }
private function method_538() : void private function updateHeight() : void
{ {
var heightChangeDir:int = this.input.name_192(KEY_CAMERA_UP) - this.input.name_192(KEY_CAMERA_DOWN); var heightChangeDir:int = this.input.name_192(KEY_CAMERA_UP) - this.input.name_192(KEY_CAMERA_DOWN);
if(heightChangeDir != 0) if(heightChangeDir != 0)
@@ -388,7 +388,7 @@ package package_9
} }
} }
private function method_535(h:Number) : Number private function getCamDistance(h:Number) : Number
{ {
var hMid:Number = 0.5 * (3300 + 200); var hMid:Number = 0.5 * (3300 + 200);
var a:Number = hMid; var a:Number = hMid;
@@ -397,12 +397,12 @@ package package_9
return -k * (h - a) * (h - a) + 1300; return -k * (h - a) * (h - a) + 1300;
} }
private function method_539(positionError:Number) : Number private function getLinearSpeed(positionError:Number) : Number
{ {
return 3 * positionError; return 3 * positionError;
} }
private function method_537(angleError:Number, currentSpeed:Number) : Number private function getAngularSpeed(angleError:Number, currentSpeed:Number) : Number
{ {
if(angleError < -maxAngleError) if(angleError < -maxAngleError)
{ {
@@ -415,7 +415,7 @@ package package_9
return currentSpeed; return currentSpeed;
} }
private function method_541(value:Number, snapValue:Number, epsilon:Number) : Number private function snap(value:Number, snapValue:Number, epsilon:Number) : Number
{ {
if(value > snapValue - epsilon && value < snapValue + epsilon) if(value > snapValue - epsilon && value < snapValue + epsilon)
{ {
@@ -424,7 +424,7 @@ package package_9
return value; return value;
} }
private function method_542(cameraPositionData:CameraPositionData) : Number private function getPitchAngle(cameraPositionData:CameraPositionData) : Number
{ {
var angle:Number = this.var_521 - fixedPitch.value; var angle:Number = this.var_521 - fixedPitch.value;
if(angle < 0) if(angle < 0)
@@ -439,7 +439,7 @@ package package_9
return cameraPositionData.extraPitch - Math.atan2(t * this.var_510,pitchCorrectionCoeff.value * this.var_510 * (1 / Math.tan(angle) - (1 - t) / Math.tan(this.var_521))); return cameraPositionData.extraPitch - Math.atan2(t * this.var_510,pitchCorrectionCoeff.value * this.var_510 * (1 / Math.tan(angle) - (1 - t) / Math.tan(this.var_521)));
} }
private function method_547(value:Number, targetValue:Number, delta:Number) : Number private function moveValueTowards(value:Number, targetValue:Number, delta:Number) : Number
{ {
if(value < targetValue) if(value < targetValue)
{ {

View File

@@ -1,4 +1,4 @@
package package_9 package alternativa.tanks.game.camera
{ {
import flash.geom.Vector3D; import flash.geom.Vector3D;
import alternativa.tanks.game.ObjectController; import alternativa.tanks.game.ObjectController;
@@ -14,7 +14,7 @@ package package_9
import package_46.name_194; import package_46.name_194;
import package_47.name_193; import package_47.name_193;
public class name_20 implements name_102 public class FreeCameraController implements name_102
{ {
public static var smoothing:Number = 20; public static var smoothing:Number = 20;
@@ -62,7 +62,7 @@ package package_9
private var var_45:Matrix4 = new Matrix4(); private var var_45:Matrix4 = new Matrix4();
public function name_20(camera:name_90, input:IInput) public function FreeCameraController(camera:name_90, input:IInput)
{ {
super(); super();
this.input = input; this.input = input;
@@ -179,7 +179,7 @@ package package_9
} }
if(targeted && this.target != null) if(targeted && this.target != null)
{ {
this.method_114(); this.updateTargetState();
dx = this.var_45.d - object.x; dx = this.var_45.d - object.x;
dy = this.var_45.h - object.y; dy = this.var_45.h - object.y;
dz = this.var_45.l - object.z; dz = this.var_45.l - object.z;
@@ -189,14 +189,14 @@ package package_9
} }
} }
private function method_114() : void private function updateTargetState() : void
{ {
this.method_113(this.target.parent,this.parentMatrix); this.setMatrixFromObject(this.target.parent,this.parentMatrix);
this.method_113(this.target,this.var_45); this.setMatrixFromObject(this.target,this.var_45);
this.var_45.append(this.parentMatrix); this.var_45.append(this.parentMatrix);
} }
private function method_113(object:name_78, matrix:Matrix4) : void private function setMatrixFromObject(object:name_78, matrix:Matrix4) : void
{ {
matrix.name_196(object.rotationX,object.rotationY,object.rotationZ); matrix.name_196(object.rotationX,object.rotationY,object.rotationZ);
matrix.name_75(object.x,object.y,object.z); matrix.name_75(object.x,object.y,object.z);

View File

@@ -1,4 +1,4 @@
package package_9 package alternativa.tanks.game.camera
{ {
import flash.ui.Keyboard; import flash.ui.Keyboard;
import flash.utils.getTimer; import flash.utils.getTimer;
@@ -19,7 +19,7 @@ package package_9
import package_76.name_256; import package_76.name_256;
import package_90.name_273; import package_90.name_273;
public class name_298 extends class_32 implements name_102 public class OrbitCameraController extends CameraControllerBase implements name_102
{ {
private static var parentMatrix:Matrix4 = new Matrix4(); private static var parentMatrix:Matrix4 = new Matrix4();
@@ -137,7 +137,7 @@ package package_9
private var var_523:name_194 = new name_194(); private var var_523:name_194 = new name_194();
public function name_298(camera:name_90, collisionDetector:name_256, collisionMask:int, input:IInput) public function OrbitCameraController(camera:name_90, collisionDetector:name_256, collisionMask:int, input:IInput)
{ {
super(); super();
this.camera = camera; this.camera = camera;
@@ -148,7 +148,7 @@ package package_9
this.collisionDetector = collisionDetector; this.collisionDetector = collisionDetector;
this.collisionMask = collisionMask; this.collisionMask = collisionMask;
this.input = input; this.input = input;
this.method_534 = 600; this.cameraHeight = 600;
} }
public function name_108() : void public function name_108() : void
@@ -182,7 +182,7 @@ package package_9
{ {
dt = 0.1; dt = 0.1;
} }
this.method_114(); this.updateTargetState();
matrix.method_353(targetOffset,this.var_512); matrix.method_353(targetOffset,this.var_512);
var distanceChangeDir:int = this.input.name_192(KEY_CAMERA_UP) - this.input.name_192(KEY_CAMERA_DOWN) - this.input.method_261(); var distanceChangeDir:int = this.input.name_192(KEY_CAMERA_UP) - this.input.name_192(KEY_CAMERA_DOWN) - this.input.method_261();
if(distanceChangeDir != 0) if(distanceChangeDir != 0)
@@ -244,16 +244,16 @@ package package_9
camera.rotationZ = -Math.atan2(dx,dy); camera.rotationZ = -Math.atan2(dx,dy);
} }
private function set method_534(value:Number) : void private function set cameraHeight(value:Number) : void
{ {
this.var_510 = name_501.clamp(value,MIN_HEIGHT,MAX_HEIGHT); this.var_510 = name_501.clamp(value,MIN_HEIGHT,MAX_HEIGHT);
var d:Number = this.method_535(this.var_510); var d:Number = this.getCamDistance(this.var_510);
this.var_521 = Math.atan2(this.var_510,d); this.var_521 = Math.atan2(this.var_510,d);
this.var_511 = Math.sqrt(this.var_510 * this.var_510 + d * d); this.var_511 = Math.sqrt(this.var_510 * this.var_510 + d * d);
this.var_522 = 0; this.var_522 = 0;
} }
private function method_540(targetPosition:name_194, targetDirection:name_194, useReboundDelay:Boolean, dt:Number, result:CameraPositionData) : void private function getCameraPositionData(targetPosition:name_194, targetDirection:name_194, useReboundDelay:Boolean, dt:Number, result:CameraPositionData) : void
{ {
var angle:Number = NaN; var angle:Number = NaN;
var now:int = 0; var now:int = 0;
@@ -282,7 +282,7 @@ package package_9
{ {
this.rotationMatrix.method_344(axis,-angle); this.rotationMatrix.method_344(axis,-angle);
this.rotationMatrix.method_345(flatDirection,rayDirection); this.rotationMatrix.method_345(flatDirection,rayDirection);
minCollisionDistance = this.method_536(rayOrigin,rayDirection,this.var_511,minCollisionDistance); minCollisionDistance = this.getMinCollisionDistance(rayOrigin,rayDirection,this.var_511,minCollisionDistance);
} }
if(useReboundDelay) if(useReboundDelay)
{ {
@@ -329,7 +329,7 @@ package package_9
} }
} }
private function method_536(rayOrigin:name_194, rayDirection:name_194, rayLength:Number, minCollisionDistance:Number) : Number private function getMinCollisionDistance(rayOrigin:name_194, rayDirection:name_194, rayLength:Number, minCollisionDistance:Number) : Number
{ {
var distance:Number = NaN; var distance:Number = NaN;
if(this.collisionDetector.raycast(rayOrigin,rayDirection,this.collisionMask,rayLength,null,rayHit)) if(this.collisionDetector.raycast(rayOrigin,rayDirection,this.collisionMask,rayLength,null,rayHit))
@@ -351,43 +351,43 @@ package package_9
return minCollisionDistance; return minCollisionDistance;
} }
private function method_114() : void private function updateTargetState() : void
{ {
this.method_113(this.var_515.parent,parentMatrix); this.setMatrixFromObject(this.var_515.parent,parentMatrix);
this.method_113(this.var_515,matrix); this.setMatrixFromObject(this.var_515,matrix);
matrix.append(parentMatrix); matrix.append(parentMatrix);
matrix.getAxis(3,this.targetPosition); matrix.getAxis(3,this.targetPosition);
this.targetDirection.reset(matrix.b,matrix.f,matrix.j); this.targetDirection.reset(matrix.b,matrix.f,matrix.j);
} }
private function method_113(object:name_78, matrix:Matrix4) : void private function setMatrixFromObject(object:name_78, matrix:Matrix4) : void
{ {
matrix.name_196(object.rotationX,object.rotationY,object.rotationZ); matrix.name_196(object.rotationX,object.rotationY,object.rotationZ);
matrix.name_75(object.x,object.y,object.z); matrix.name_75(object.x,object.y,object.z);
} }
private function method_538() : void private function updateHeight() : void
{ {
var heightChangeDir:int = this.input.name_192(KEY_CAMERA_UP) - this.input.name_192(KEY_CAMERA_DOWN); var heightChangeDir:int = this.input.name_192(KEY_CAMERA_UP) - this.input.name_192(KEY_CAMERA_DOWN);
if(heightChangeDir != 0) if(heightChangeDir != 0)
{ {
this.method_534 = this.var_510 + heightChangeDir * HEIGHT_CHANGE_STEP; this.cameraHeight = this.var_510 + heightChangeDir * HEIGHT_CHANGE_STEP;
} }
} }
private function method_535(h:Number) : Number private function getCamDistance(h:Number) : Number
{ {
var v:Number = 200 - 1750; var v:Number = 200 - 1750;
var k:Number = (1300 - 600) / (v * v); var k:Number = (1300 - 600) / (v * v);
return -k * (h - 1750) * (h - 1750) + 1300; return -k * (h - 1750) * (h - 1750) + 1300;
} }
private function method_539(positionError:Number) : Number private function getLinearSpeed(positionError:Number) : Number
{ {
return 3 * positionError; return 3 * positionError;
} }
private function method_537(angleError:Number, currentSpeed:Number) : Number private function getAngularSpeed(angleError:Number, currentSpeed:Number) : Number
{ {
if(angleError < -maxAngleError) if(angleError < -maxAngleError)
{ {
@@ -400,7 +400,7 @@ package package_9
return currentSpeed; return currentSpeed;
} }
private function method_541(value:Number, snapValue:Number, epsilon:Number) : Number private function snap(value:Number, snapValue:Number, epsilon:Number) : Number
{ {
if(value > snapValue - epsilon && value < snapValue + epsilon) if(value > snapValue - epsilon && value < snapValue + epsilon)
{ {
@@ -409,7 +409,7 @@ package package_9
return value; return value;
} }
private function method_542(cameraPositionData:CameraPositionData) : Number private function getPitchAngle(cameraPositionData:CameraPositionData) : Number
{ {
var angle:Number = this.var_521 - fixedPitch.value; var angle:Number = this.var_521 - fixedPitch.value;
if(angle < 0) if(angle < 0)

View File

@@ -34,7 +34,7 @@ package package_18
import alternativa.tanks.game.entities.tank.graphics.materials.GiShadowMaterial; import alternativa.tanks.game.entities.tank.graphics.materials.GiShadowMaterial;
import alternativa.tanks.game.entities.tank.graphics.materials.TracksMaterial2; import alternativa.tanks.game.entities.tank.graphics.materials.TracksMaterial2;
import alternativa.tanks.game.entities.tank.graphics.materials.TankMaterial; import alternativa.tanks.game.entities.tank.graphics.materials.TankMaterial;
import package_9.name_23; import alternativa.tanks.game.camera.AxisIndicator;
use namespace alternativa3d; use namespace alternativa3d;
@@ -74,7 +74,7 @@ package package_18
private var var_13:name_102; private var var_13:name_102;
private var axisIndicator:name_23; private var axisIndicator:AxisIndicator;
private var renderers:name_86; private var renderers:name_86;
@@ -148,7 +148,7 @@ package package_18
this.var_5.gravity = new Vector3D(0,0,-1); this.var_5.gravity = new Vector3D(0,0,-1);
this.var_5.wind = new Vector3D(1,0,0); this.var_5.wind = new Vector3D(1,0,0);
this.rootContainer.addChild(this.var_5); this.rootContainer.addChild(this.var_5);
this.axisIndicator = new name_23(100); this.axisIndicator = new AxisIndicator(100);
this.resourceManager = new name_101(); this.resourceManager = new name_101();
this.var_9 = new name_92(); this.var_9 = new name_92();
this.staticShadowRenderer = new name_97(null,1024,4); this.staticShadowRenderer = new name_97(null,1024,4);
@@ -470,7 +470,7 @@ package package_18
} }
} }
public function name_42() : name_23 public function name_42() : AxisIndicator
{ {
return this.axisIndicator; return this.axisIndicator;
} }