public void ChangeLookAt() { if (MyPlayer == null) { Vector3 Direction = Rotation.getAsRadians(); Vector3 LookOffset = new Vector3(ZoomDistance.get()); float OutMult = (float)Math.Cos(Direction.X); Vector3 LookFrom = Position.get() + new Vector3((float)Math.Cos(Direction.Y) * OutMult * LookOffset.X, LookOffset.Y * (float)Math.Sin(Direction.X), (float)Math.Sin(Direction.Y) * OutMult * LookOffset.X); MyCamera.SetLookAt(LookFrom, Position.get()); } else { MyCamera.SetLookAt(Position.get(), Position.get() + cameraFront); } }
public override void Update(GameTime gameTime) { ItemTime += gameTime.ElapsedGameTime.Milliseconds; if (ItemTime > MaxItemTime.get()) { ItemTime -= MaxItemTime.get(); CurrentItem++; if (CurrentItem > ModelCount.get() - 1) { CurrentItem = 0; } } if (Items[CurrentItem] == null) { Items[CurrentItem] = new LineModelItem(Models[CurrentItem].get(), LineFlares.get(), RandomFlares.get()); } Items[CurrentItem].Update(gameTime); WorldCameraInterpolation += gameTime.ElapsedGameTime.Milliseconds * 60 / 100000f * CameraSpeed.get(); if (WorldCameraInterpolation > 1) { WorldCameraInterpolation = 0; WorldCameraFrom = Rand.V3() * Items[CurrentItem].Distance * 3; WorldCameraTo = Rand.V3() * Items[CurrentItem].Distance * 3; WorldCameraLookAt = Items[CurrentItem].Points[Rand.r.Next(Items[CurrentItem].Points.Count)] / 2; } MyCamera.SetLookAt(Vector3.Lerp(WorldCameraFrom, WorldCameraTo, WorldCameraInterpolation), WorldCameraLookAt); base.Update(gameTime); }
public override void Update(GameTime gameTime) { WorldCameraInterpolation += gameTime.ElapsedGameTime.Milliseconds * 60 / 100000f * CameraSpeed.get(); if (WorldCameraInterpolation > 1) { WorldCameraInterpolation = 0; WorldCameraFrom = Rand.V3() * CameraDistance.get(); WorldCameraTo = Rand.V3() * CameraDistance.get(); } //WorldCameraLookAt = MyPoint.DrawPosition; MyCamera.SetLookAt(Vector3.Lerp(WorldCameraFrom, WorldCameraTo, WorldCameraInterpolation), WorldCameraLookAt); //MyCamera.SetLookAt(new Vector3(10,100,10), new Vector3(0,0,0)); MyPoint.Update(gameTime); base.Update(gameTime); }