class CameraLogic : ZilchComponent { var TargetObject1 : Cog = null; var TargetObject2 : Cog = null; function Initialize(init : CogInitializer) { this.TargetObject1 = this.Space.FindObjectByName("Player"); this.TargetObject2 = this.Space.FindObjectByName("Player2"); Zero.Connect(this.Space, Events.LogicUpdate, this.OnLogicUpdate); } function OnLogicUpdate(event : UpdateEvent) { var xCamPos = 0.0; var yCamPos = 0.0; var x1 = this.TargetObject1.Transform.Translation.X; var x2 = this.TargetObject2.Transform.Translation.X; var camPos = (x1 - x2); if(camPos < 0) { camPos = camPos * -1; } if(x1 > x2) { xCamPos = x2 + (camPos / 2); } else { xCamPos = x1 + (camPos / 2); } this.Owner.Camera.Size = camPos +5; var y1 = this.TargetObject1.Transform.Translation.Y; var y2 = this.TargetObject2.Transform.Translation.Y; var camPosY = (y1 - y2); if(camPosY < 0) { camPosY = camPosY * -1; } if(y1 > y2) { yCamPos = y2 + (camPosY / 2); } else { yCamPos = y1 + (camPosY / 2); } if(camPosY > camPos) { this.Owner.Camera.Size = camPosY +5; } if(this.TargetObject1.Transform.Translation.X <= 23.5 && this.TargetObject1.Transform.Translation.X >= -266.5 ) { // create a new variable to hold the player's position var newCameraPos = this.TargetObject1.Transform.LocalTranslation; // save the camera's z value newCameraPos.Z = this.Owner.Transform.LocalTranslation.Z; newCameraPos.Y = yCamPos; newCameraPos.X = xCamPos; // set the camera's new position to newCameraPos this.Owner.Transform.LocalTranslation = newCameraPos; Console.WriteLine(this.Owner.Transform.LocalTranslation); } } }